は、私が最後に拡張子.bz2を持たないすべてのサブディレクトリからファイルを移動しようとしています: バッチ:拡張子がない場合は、ファイルを移動します(.bz2)
それは上がらないすべての拡張を移動する必要があります
for /R C:\AppServ\fastdl %f in (*) do @if not exist (*.bz2) move /Y * C:\AppServ\fastdl\not_bzip >NUL
しかし、このスクリプトは、フォルダを移動しようとしているとも同様失敗している:
そして、私が代わりに移動/ Yの%F置く場合(.bz2)私はこれを試してみましたで終わる「T *それは動くでしょうe .bz2ファイル。
ありがとうございました。 – Mike
'for'('/R')ループの内部でディレクトリ(ツリー)を操作することは非常に危険です - この質問を参照してください: '' for 'または 'for/R'はディレクトリを列挙します)?](http://stackoverflow.com/q/31975093) 'for/F" delims = "%dir/B/S" C:\ AppServ \ fastdl \ * "')を使ってdo(。 ..) '([Noodles 'answer](http://stackoverflow.com/a/39761641)に似ています)は、ディレクトリツリーが操作される前に*列挙されることを保証します。ちなみに、拡張子のないファイルでのトラブルを避けるために、 '%"〜 "xf" NEQ ".bz2" 'のような引用符を使うべきです... – aschipfl
危険な言葉は少し劇的だと思います。削除しないでください。私はこの方法で落ちることを理解していますが、実際にはこの実行中のスクリプトを通してツリーが動的に変更される可能性があります。また、拡張子のないファイルの可能性についても同様のことが言えますが、特にOPが簡単なサンプルを投稿したときには起こりそうなことはほとんどありません。 dirコマンドを使用しても、私はまだシステムと隠しファイルをバイパスして** - d **と** - s -h **を指定する方が好きです。すべての用途ではなく一般的な使用に十分な堅牢性を備えています。 – Compo