2016-03-31 7 views
3

フォルダ内のすべての.csvファイルを繰り返し処理する予定のバッチファイルを作成し、それぞれを次のように実行します。MOVE /別のフォルダのsun.csvに名前を変更します。同じ名前で、solar.csvを利用するサービスを開始し、7.5分待ってサービスを停止します。これは、フォルダ内の各.csvファイルに対して実行する必要があります。私はそれも同様に各ステップを報告したいと思います。ここでは、これまでに私のコードです:バッチファイルのデバッグ

@ECHO OFF 
CD "D:\PI Data Import\Data" 

For /R %%G IN (*.csv) DO (

MOVE /Y %%G.csv "D:\PI Data Import\solar.csv" 
ECHO "%%G.csv Moved" 
NET START RDBMSPI4 
ECHO "Service Started" 
ECHO "Waiting" 
TIMEOUT /T 450 /NOBREAK 
NET STOP RDBMSPI4 
Echo "%%G.csv Complete" 

) 

それは私のコマンドの構文が正しくないことを報告するが、しかし、正確にどの部分言っていません。私は、FOR/R行が少し間違っていると思われます。おそらくMOVEコマンド、そしておそらくコマンドセクションで%% Gをどのように扱うのでしょうか。

私が本当に必要とするのはシンタックスチェックです。このサーバを操作することが重要であるため、これがゴールデンになる前にこれをあまりにもひどくテストすることを恐れています。すべての助けに感謝、私はすべてのバッチファイルでの作業経験はありません。

+2

一般的なデバッグでは、エラーが生成されたときに最後に処理されたコマンドを表示できるように '@ECHO OFF'コマンドを削除/コメントアウトすることをお勧めします。 –

+1

あなたのCSVファイルに空白がある場合は、あなたの 'MOVE'コマンドでエラーが発生します。 '' %% G '' –

答えて

2

私はforコマンドから/ Rを削除します。また、%% gの後に.csvを置かないでください。既に.csvファイルがあるため、.csvファイルが追加されます。

CSVファイルBTWを移動するたびに、solar.csvファイルを上書きします。 CSVファイルをsolar.csvに追加する場合は、そのファイルにCSVファイルを追加する必要があります。例えば。あなたのループの前に

...

if exist solar.csv del solar.csv 

そして、あなたのループ内

...あなたのサービスは、各solar.csvファイルを処理しようとし、その後、あなただけのファイルを上書きしない限り

type %%g >> solar.csv 

次のものでは、あなたは黄金です。

+0

入力していただきありがとうございます!変更を提案しましたが、実際に移動するたびに上書きするようにしています。/Rを削除すると、その親ディレクトリは再帰的に移動しますか?私は、データフォルダ内のフォルダにデータをドロップし、各フォルダ内のすべてに対してこの機能を実行する必要があります。 – shilohln

+0

私は最初/ Rで動作させることができませんでしたが、もしそれを行う必要があり、それがあなたのためにうまくいくなら、それを維持してください:) – ManoDestra