我試圖從沒有擴展,操作.bz2最終所有子目錄移動文件: 批次:將文件擴展名,如果不是(操作.bz2)
應該移到哪AREN所有分機「T與(操作.bz2)我想這個結局:
for /R C:\AppServ\fastdl %f in (*) do @if not exist (*.bz2) move /Y * C:\AppServ\fastdl\not_bzip >NUL
如果我把%F的不是移動/ Y *它會移動e .bz2文件。
我試圖從沒有擴展,操作.bz2最終所有子目錄移動文件: 批次:將文件擴展名,如果不是(操作.bz2)
應該移到哪AREN所有分機「T與(操作.bz2)我想這個結局:
for /R C:\AppServ\fastdl %f in (*) do @if not exist (*.bz2) move /Y * C:\AppServ\fastdl\not_bzip >NUL
如果我把%F的不是移動/ Y *它會移動e .bz2文件。
你可能想是這樣的:
For /R "C:\AppServ\fastdl" %f In (*) Do @If %~xf NEq .bz2 (@Move /Y "%~f" "C:\AppSrv\not_bzip">Nul)
請注意,我改變了移動到目錄中,則需要先創建它自己,並確保它比文件夾樹的子目錄之外的某個地方你正在掃描。
For /f "delims=" %A in ('dir /b /s "c:\windows\syswow64" ^| Findstr /v /I /c:".dll"') Do Echo %A
列出除dll文件以外的所有文件。
實際上,搜索字符串應該是'.dll $'以將匹配錨定到文件名的末尾;否則,像'this.is.not.a.dll.file.txt'這樣的東西會錯誤匹配... – aschipfl
謝謝你,救了我的一天! – Mike
操作'for'('/ R')循環內的目錄(樹)非常危險 - 請參閱此問題:[for或for/)?(http://stackoverflow.com/q/31975093)在('dir/B/S「C:\ AppServ \ fastdl \ *」')中使用'for/F「delims =」%F ..)'(類似於[Noodles'answer](http://stackoverflow.com/a/39761641))確保目錄樹在被操作之前被枚舉*。順便說一句,你應該使用'if'%〜xf「NEQ」.bz2「'引號來避免文件沒有擴展名時遇到的麻煩...... – aschipfl
我認爲危險這個詞有點過於戲劇化,它們正在移動文件,而不是刪除它們。我明白這種方法會造成衰落,但是在整個運行腳本中動態改變樹的可能性真的很大。對於沒有擴展名的文件的可能性也可以這麼說,但是當OP在他們的文章中提供了一個快速樣本時,這種可能性不大可能不大。即使使用dir命令,我仍然更願意規定** - d **和** - s -h **,繞過系統和隱藏文件。它足夠強大以供一般使用,而不是全部使用。 – Compo