2016-12-06 17 views
0

"_CPU2"という名前のデータをcollected_dataフォルダに収集したい。 私のバッチはディレクトリを作成し、ファイルはコピーされますが、ディレクトリは空であると言います。私の間違いを指摘してください。FORFILES +バッチのコピーで必要なデータが収集されない

おそらく
if not exist "%~dp0\collected_data" MKDIR collected_data 
SET data_folder="%~dp0%collected_data" 

FORFILES /M *_CPU2* /S /C "cmd /c COPY @file %data_folder% 
+0

それがコピーされたファイルの数を教えてくれますか?そして、どのコマンドが生成されているかを見るために、すべての行の前に 'echo'を追加しようとしましたか? – geisterfurz007

+0

実際に 'if exist'行は必要ありません。' set'コマンド行の後に '2> nul mkdir"%data_folder% "'と書くだけです。ディレクトリがすでに存在する場合、 '2> nul'部分はエラーメッセージを抑制します... – aschipfl

答えて

1

あなたがサブディレクトリに再帰されているので、あなたがより良い完全なパスだけではなく、ファイル名を使用することをお勧めすることがあります:

PAUSE 
SET "data_folder=%~dp0collected_data" 
IF NOT EXIST "%data_folder%\" MKDIR "%data_folder%" 
FORFILES /M *_CPU2* /S /C "CMD /C COPY @path 0x22%data_folder%0x22" 
PAUSE 
+0

ありがとうございます。 Youre skriptが完璧にやっている! 「0x22」は何を意味しますか? – sgerodes

+0

二重引用符の16進コードで、forfilesコマンドラインで特殊文字と見なされます。 – Compo

関連する問題