問題タブ [forfiles]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
batch-file - FORFILES の複数の使用
これが機能し、コマンドラインからうまく機能することはわかっています...参照。検索マスクに複数のファイルタイプを持つ forfiles を使用していますか?
私たちがやりたいことは、これらの 2 つのファイル マスクを使用することです: fileone と filetwo を使用して、別の FORFILES を呼び出します。%%G を 2 倍にすると、これはバッチ スクリプトになります。一度?
結果は次のとおりです。
これもうまくいかないようです..使用できません: /c 複数回... 参照..ネストされた forfiles: パスと拡張子フィルタ
windows - 「forfiles」がディレクトリ (ツリー) を列挙するのはどの時点ですか?
このコマンドforfiles
は、ディレクトリを列挙し、各項目に特定のコマンドを適用することを目的としています。/S
完全なディレクトリツリーに対しても同じことができます。
列挙されたディレクトリ (ツリー) の内容が、コマンド本体のコマンドによって変更されるとどうなりforfiles
ますか?
D:\data
次の内容のディレクトリがあるとします。
上記のディレクトリで実行した場合の出力にはforfiles /P "D:\data" /M "*.txt" /C "cmd /C echo @file"
、明らかに上記のリストが反映されます。
しかし、forfiles
本体のコマンドがディレクトリの内容を変更するときの出力は何ですか? たとえば、リスト内のファイルの 1 つfile3.txt
が実際に繰り返される前に削除されたとします。file4.txt
または、ループが完了する前に、のように新しいファイルが作成された場合はどうなりますか?
そのような状況でどのforfiles /S
ように行動しますか?いくつかのサブディレクトリsub1
、sub2
、 がありsub3
、それぞれに上記のファイルのリストが含まれているとします。forfiles /S
現在 を反復処理中ですsub2
。sub1
は既に処理されていますが、まだ処理されていsub3
ません。sub1
との内容はsub3
その時点で変更されます (前述のように現在ウォークスルーsub2
している場合)。では何が挙げられるでしょうか?内容の変更はsub1
認められないと思いますが、どうsub3
でしょうか?
私は主にforfiles
Windows Vista 以降の動作に興味があります。
注:コマンドについて非常によく似た質問
をすでに投稿しました。ただし、組み込みコマンドではなく、構文がまったく異なるため、他の質問の範囲を拡張するのではなく、別の質問を投稿することにしました。for
forfiles
batch-file - `forfiles` で `@` 変数置換をエスケープするには?
次のようなコマンド ラインを使用していforfiles
ます (Windows 7 x64):
@relpath
(現在反復されているアイテムへの相対パス)の置換をエスケープして、@relpath
文字通り出力を取得するにはどうすればよいですか? (...または他の@
変数?)
これまでのところ、成功せずに次のことを試しました。
\
: は@
前に処理されているように見える\
ため、\@relpath
機能しません。むしろ、展開された出力の前に\
;が付いています。^
: を述べても、が消える^@
以外は何の効果もありません。^
書き込ん^^@
でも役に立ちません^
。その場合、展開された出力に残ります。0xHH
: 驚くべきことに (私には)、forfiles
16 進数の特定の置換も機能0x40
しません。これは、変数の解析の前に行われるようです。@@
: 2 倍にすると、文字通り@
最初の値が保持されます。@
batch-file - forfilesでコマンドのERRORLEVELを取得するには?
1 日以上前のファイルを処理する必要があります。したがって、私はこれを使用します:
ここで、7z.exe の進行が成功したかどうかを確認したいと思います。errorlevel
forefiles コマンド内のコマンドを取得するにはどうすればよいですか? 可能性はありますか?
私はすでにうまくいかなかった次の方法を試しました。errorlevel
エラー (2) を返すはずの壊れたファイルを使用しても、常に 0 を返します。
batch-file - バッチよりも新しい ForFiles
forfiles コマンドを使用しています
X 日前より新しいファイルのリストを取得しようとしています。
/D +X コマンドを使用すると、not files found エラーが発生します。
ただし、日付を使用すると正常に機能します。
+X の書式設定で何か不足していますか? 現在の日付に 3 日を追加してから、それよりも新しいファイルを探しているようです。
または、私が知っているよりも日付を増やす簡単な方法がありますか。Batch をたまにしか使用しない
私は vbs を使用したくありません。また、日付を取得するためだけにスクリプトの残りの部分よりも長いコード セットを使用したくありません。もっと簡単な方法があるはずです。
windows - Windows の forfiles コマンドからフル パスを指定してコマンドを実行するにはどうすればよいですか?
次のコマンドを実行しようとしています。
ただし、次のように失敗します。
これらも機能しません:
渡されるパスにcmd
スペースが含まれているため、間違いなく失敗しています。通常、引数全体を引用することでこれを解決します。ただし、二重引用符を渡す方法はないようです。
では、Windows の forfiles コマンドからフル パスを指定してコマンドを実行するにはどうすればよいでしょうか。