バッチファイル フォルダ存在 確認
いつも大変御世話になっております。
WindowsXP SP2に【D:\test\bat】フォルダに【test.bat】があります。
上記バッチファイルは以下のようになっています。
コード------------------------------------------------
rem --- 時間変数 ---
set yyyy=%date:~-10,2%
set yy=%date:~-8,2%
set mm=%date:~-5,2%
set dd=%date:~-2,2%
set YMD=%date:~-8,10%
set HHMMSS=%time:~0,8%
set FILE_DATE=%date:~-10,4%%date:~-5,2%%date:~-2,2%%TIME:~0,2%%TIME:~3,2%
set FILE_DATE=%FILE_DATE: =0%
rem --- フォルダ変数 ---
set log=D:\test\drive_xcopy\log
set INP_DIR=D:\test\drive_xcopy\in
set OUT_DIR=D:\test\drive_xcopy\out\
rem --- ファイル変数 ---
set logName=log.txt
echo "%YMD%","%HHMMSS%","FOLDER.bat","処理開始" >> %log%\%logName%
REM フォルダコピー
XCOPY "%INP_DIR%" "%OUT_DIR%" /e /Y >> %log%\%logName%
echo "%YMD%","%HHMMSS%","FOLDER.bat","処理終了" >> %log%\%logName%
コード------------------------------------------------
単純に【D:\test\drive_xcopy\in\】内のすべてのフォルダを
【D:\test\drive_xcopy\out\】内にコピーしています。
ちなみに、、【D:\test\drive_xcopy\in\】フォルダには100個フォルダがあります。
実現したい事は、コピー対象となる100個フォルダがちゃんとコピーされ、
コピー先にすべて確実存在しているかを【コピー元⇔コピー先】とで
1つ1つマッチング処理したいのです。
すべて存在していれば、上記ログファイルに
100フォルダすべてが存在しています。
と書き込み、
1つでも存在していなければ、上記ログファイルに
○○○フォルダがコピー先に存在していません。
それ以外は存在しています。
と書き込むような処理を実現したいのです。
コピー先に存在していないのが複数であれば
下記のようなログメッセージを書き込みたいです。
ログメッセージ例-----------------------
○○○フォルダがコピー先に存在していません。
×××フォルダがコピー先に存在していません。
それ以外は存在しています。
ログメッセージ例-----------------------
For文とIF文をうまく使い、フォルダを変数で順に格納してマッチングするような
作成になると思いますが、難しくて苦戦しています。
方法をご存知の方がいれば、ご教授願いますでしょうか?
※サンプルがあれば、光栄です。
宜しくお願い致します。
お礼
さっそくの回答、ありがとうございます。 すいません。「任意」の数字は、間違いで「ランダム」な数字が正しいです。 結果、以下のようなコマンドで対応できました。 for /F %%A in ('dir /b/a:d %TARGET%') do xcopy D:\test.txt %TARGET%\%%A\ ありがとうございました。