在批次檔不起作用的情況下尋找並移動子目錄中的隱藏文件

在批次檔不起作用的情況下尋找並移動子目錄中的隱藏文件

我正在嘗試使用此批次文件來查找和移動文件...但它不適用於隱藏文件。少了什麼?

@echo off
setlocal
set root=E:\backup
set dest=E:\Tmp
for /f "delims=" %%f in ('dir /ad /b /s %root%') do @move "%%f\~$*.SLD*" %dest%
endlocal

答案1

無論如何,你都必須取消隱藏這些文件,因為移動不適用於找不到的文件(即使您提供完整的文件名)。沒有旗幟可以給移動讓它尋找帶有隱藏屬性標記的檔案。

取消隱藏文件屬性-hfor用這組替換你的行:

for /f "delims=" %%f in ('dir /ad /b /s %root%') do (
  @attrib -h "%%f\~$*.SLD*"
  @move "%%f\~$*.SLD*" %dest%
)

您可以使用更複雜的工具,例如複製或者機器人複製,可以對隱藏檔案進行操作。當然,這些都是複製工具,因此您仍然需要在複製完成後取消隱藏原始檔案並刪除它們。

相關內容