0
私は01_tiago_miguel.txt
という名前のファイルと、このコードを持って働いていない名前の変更します最初の3文字。CMDバッチが正しく
echo
を削除すると、miguel.txt
という名前に変更されますが、エコーの出力が正しいと思われるのであまり意味がありません。 理由は何ですか?
私は01_tiago_miguel.txt
という名前のファイルと、このコードを持って働いていない名前の変更します最初の3文字。CMDバッチが正しく
echo
を削除すると、miguel.txt
という名前に変更されますが、エコーの出力が正しいと思われるのであまり意味がありません。 理由は何ですか?
使用は
for /f "delims=" %%A in (`dir /b /a-d "*_*"') do (
何が起こっていることは、あなたのecho
ファイル(当たり前)が、それがない削除、名前を変更しないということです。新しいファイル名がtiago_miguel.txt
あるので
ren "01_tiago_miguel.txt" "tiago_miguel.txt"
ren "tiago_miguel.txt" "miguel.txt"
が実行される
しかし
tiago_miguel.txt
も*_*
マスクに適合し、実行されたので、新しいファイル名がmiguel.txt
です。
dir
コマンドを使用すると、ディレクトリリストが実行されてリストが処理されるため、変更が加えられた場合は再起動されません。
[ディレクトリのツリーを列挙する\ for \ 'または\ for \]の可能な複製?](http://stackoverflow.com/questions/31975093/at-which-point -d-for-for-r-enumerate-the-directory-tree) – aschipfl
マスクを '* _ *'から '?? _ *'に変更すると、実行時に再度ファイルの名前を変更するのを避けることができますこのスクリプトは2回目です... – aschipfl
_これが私がパターンを特に言及し、最後の質問に答えて使用した理由です。私の代わりの解決策は、ファイルを再処理できないように移動して別のディレクトリまたは別のディレクトリに名前を変更することです。 – Compo