我正在編寫批處理以在當前目錄中的所有目錄上運行命令。.bat - 如何從目錄命令中刪除「dot」和「dot dot」項目
要開始,我做dir /A:D
,但即使在.
和..
目錄上,我不想運行我的命令。
我知道我可以寫
IF NOT %%x EQU "."
IF NOT %%x EQU ".."
排除它們但是,有沒有更通用的方法?像:
set EXCLUDED=".","..","bob"
set FOLDERS=dir /A:D
rem for each in EXCLUDED, remove from FOLDERS
rem run my command(s) on FOLDERS
是否有解決方案,就像我的問題一樣,您可以提供一個包含要排除的項目列表的VAR?這將是最通用的解決方案。 – Adrian
@Adrian您可以使用'findstr/v'來處理不符合正則表達式的行,並將變量設置爲要排除的正則表達式。 'findstr'語法將空格視爲多個搜索項的分隔符。例如,'set'excluded = intel link logitech「'then'dir/b/a:d |」 findstr/i/v「%excluded%」將匹配除Intel,Links或Logitech以外的所有目錄(不區分大小寫)。或者如果您打算採取的行動可以通過'robocopy'處理,您可以使用'robocopy'的'/ XD'開關來排除您指定的目錄。或者如果'xcopy',你可以使用它的'/ exclude'開關。 – rojo
@rojo ok聽起來像我想要的。一旦我編輯它並粘貼你在評論部分寫的內容,我會接受你的回答。 – Adrian