3

このコマンドforfilesは、ディレクトリを列挙し、各項目に特定のコマンドを適用することを目的としています。/S完全なディレクトリツリーに対しても同じことができます。

列挙されたディレクトリ (ツリー) の内容が、コマンド本体のコマンドによって変更されるとどうなりforfilesますか?

D:\data次の内容のディレクトリがあるとします。

file1.txt
file2.txt
file3.txt

上記のディレクトリで実行した場合の出力にはforfiles /P "D:\data" /M "*.txt" /C "cmd /C echo @file"、明らかに上記のリストが反映されます。

しかし、forfiles本体のコマンドがディレクトリの内容を変更するときの出力は何ですか? たとえば、リスト内のファイルの 1 つfile3.txtが実際に繰り返される前に削除されたとします。file4.txtまたは、ループが完了する前に、のように新しいファイルが作成された場合はどうなりますか?

そのような状況でどのforfiles /Sように行動しますか?いくつかのサブディレクトリsub1sub2、 がありsub3、それぞれに上記のファイルのリストが含まれているとします。forfiles /S現在 を反復処理中ですsub2sub1は既に処理されていますが、まだ処理されていsub3ません。sub1との内容はsub3その時点で変更されます (前述のように現在ウォークスルーsub2している場合)。では何が挙げられるでしょうか?内容の変更はsub1認められないと思いますが、どうsub3でしょうか?

私は主にforfilesWindows Vista 以降の動作に興味があります。

注:コマンドについて非常によく似た質問
をすでに投稿しました。ただし、組み込みコマンドではなく、構文がまったく異なるため、他の質問の範囲を拡張するのではなく、別の質問を投稿することにしました。forforfiles

4

2 に答える 2