使用批处理文件无法从子目录中查找并移动隐藏文件

使用批处理文件无法从子目录中查找并移动隐藏文件

我正在尝试使用此批处理文件来查找和移动文件...但它对隐藏文件不起作用。缺少什么?

@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

无论如何你都必须取消隐藏文件,因为移动无法处理无法找到的文件(即使你提供了完整的文件名)。没有标志可以给移动让它查找带有隐藏属性标记的文件。

使用以下方法取消隐藏文件属性-h.for用以下组替换你的线路:

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

你可以使用更复杂的工具,例如复制或者机器人复制,可以对隐藏文件进行操作。当然,这些都是复制工具,因此复制完成后,您仍然需要取消隐藏原始文件并将其删除。

相关内容