我正在尝试使用此批处理文件来查找和移动文件...但它对隐藏文件不起作用。缺少什么?
@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%
)
你可以使用更复杂的工具,例如复制或者机器人复制,可以对隐藏文件进行操作。当然,这些都是复制工具,因此复制完成后,您仍然需要取消隐藏原始文件并将其删除。