2017-12-04 5 views
1

バッチファイルを作成しようとしましたが、このバッチファイルでは、すべての古いフォルダをBackupフォルダに移動する必要があります。Forループはバッチファイルの実行を停止します

このコマンドを実行する直接それが動作している場合:

for /f %a in ('dir /b D:\app\*_2*') do move D:\app\%a D:\app\Backup\ 
をしかし、私はバッチでそれを使用する場合、バッチは、自分自身を閉じて、残りのスクリプトを実行しないでください。

+5

は、%% A'、 '%%'問題のほかに – Magoo

+0

A'ない ''%使用し、あなたのコードは、できるだけ早く、少なくとも1失敗しますpathにはスペースや、 '('、 ')'、 '&'、...のような特殊文字が含まれていますが、パスの前後に引用符を入れて、オプション文字列 'delims = eol = |" 'を追加しない限りスペースとタブに、行末の文字をファイルパス/名前に対して無効なものに変更します(デフォルトは ';'、ファイルパス/名前で有効です))... – aschipfl

+0

また、 'FOR'コマンドを使うと、あなたは日に日にそれを見たでしょう。ヘルプファイルの最初の10行だけを読んでいました。 – Squashman

答えて

2

この問題は、バッチファイルでparameter substitutionが原因で発生します。 %aをバッチスクリプトのforコマンドに渡すには、%%を使用して%文字をエスケープする必要があります。また

for /f %%a in ('dir /b D:\app\*_2*') do move D:\app\%%a D:\app\Backup\ 

参照:バッチファイルでhttps://ss64.com/nt/for.html

関連する問題