2016-09-05 13 views
1

私はタスクの1つとして自動的にフォルダを作成するためにbatファイルを作成しています。単純なforループを作成してテキストファイルのフォルダ名を確認してからそのフォルダを自動的に作成します。 Windowsのバットファイルで成功と失敗のステータスをログに記録

はここで2つのケースが発生する:

ケース1:フォルダが存在しない場合は、新しいフォルダを作成します。

ケース2:は、

(私は目的を達成するために>> folder_create_log.log 2>&1を使用しました)フォルダは既存のものであれば、フォルダが既に場合に存在するログファイルにエラーを記録しますが、しかし、私はログを作成したいと思ったので、私はWindowsのバットファイルの%errorlevel%を使って考えました。以下のように

コードビット:

set param=" 

for /F "delims=" %%a in (%FILE_NAME%.txt) do (
mkdir %param%S:\blitz2\Data\%%a\Audit%param% >> folder_create_log.log 2>&1 
mkdir %param%S:\blitz2\Data\%%a\Working%param% >> folder_create_log.log 2>&1 
mkdir %param%L:\ZaiUpload\Blitz\%%a%param% >> folder_create_log.log 2>&1 
mkdir %param%L:\ZaiUpload\Blitz\%%a\Archive%param% >> folder_create_log.log 2>&1 

echo %errorlevel% 
pause 
) 

しかし>> folder_create_log.log 2>&1が正常に動作して、それが成功して、%エラーレベル%として扱われているが、誰もが私を支援してもらえ0代わりの1

として示されています成功した作成をログファイルに記録しますか?

+0

変数 'raram'の目的は何ですか? – aschipfl

答えて

1

md test && echo successful
&&は、 "以前のコマンドが成功した場合は"のように動作します。
反対は||なので、完全なコマンドは次のようになります。

md test && echo successful || echo failed 
+0

、それはコマンドラインで動作します。ありがとうございます。私の意図は、参照用のログファイルにログを記録することです。私は 'mkdir ABC &&を試しました。Folder_Created || echo folder_Exists >> folder_create_log.log 2>&1'、しかしそれはうまくいきませんでした。 – user2075017

+0

@ user2075017 - '||'は、左側のコマンドを右側のコマンドと直接比較しています。これはechoコマンドをチェックしています。コマンドは実際に '(mkdir ABC && echo Folder_Created)||エコーが失敗しました ' – SomethingDark

+1

user2075017'(mdテスト&&エコーが成功しました| |エコーが失敗しました)>> file.txt'。 @ SomethingDark:そのparanthesesの必要はありません。それがなければ正常に動作します。 – Stephan

関連する問題