windows批处理脚本有一个小问题。在脚本中,我搜索空文件夹,当脚本找到一个文件夹时,它将在其中复制desktop.ini
。我的问题是当robocopy
设置属性时,文件夹也会得到这个属性。
@echo=off
for /d /r %1 %%A in (.) do ( dir /a /b "%%~fA" 2>nul | findstr "^" >nul || robocopy "C:\Users\user2\Desktop\test Projekt" "%%~fA" /a+:SH "desktop.ini"
)
发布于 2022-01-14 23:18:26
也许这一行批文件将完成您的预期任务:
@For /F "Delims=" %%G In ('Dir "%~1" /A:D /B /S 2^>NUL') Do @For /F %%H In ('%SystemRoot%\System32\xcopy.exe "%%G" : /HILQ 2^>NUL') Do @If %%H Equ 0 %SystemRoot%\System32\Robocopy.exe "%UserProfile%\Desktop\test Projekt" "%%G" "desktop.ini" /A+:SH 1>NUL
它使用带有for /f
循环的dir
,而不是for /d /r
循环来标识每个目录,而不是非隐藏目录。然后,它在另一个for /f
循环中使用for /f
,而不是dir
,而findstr.exe
,然后使用if
而不是条件||
,只将那些没有文件的文件传递给robocopy.exe
命令行。robocopy
命令应根据需要将desktop.ini
文件复制到那些无文件目录,并根据需要将复制的文件属性更改为system
和hidden
。
https://stackoverflow.com/questions/70713616
复制相似问题