我正在尝试将Windows文件夹中的所有.ini文件复制到我已创建的新文件夹中。我需要这个为所有用户循环。这是我所拥有的,但它只适用于最后一个用户,而不是每个用户。这是一个批处理文件。
for /r %%f in ("D:\Home\*.*\windows") do
set dir="%%d
for /r "%dir%\windows\" %%f in (*.ini) do (
copy %%f "%dir%\temp_ini"
))
pause
请帮助:/谢谢
答案 0 :(得分:1)
你遇到了一些问题 - 第二行没有终止的引用,没有延迟%dir%
的扩展(事实上,设置%dir%
是不必要的,无论如何),不合逻辑地使用第一行中的for /r
,尝试在嵌套循环中回收%%f
,第一行中的*.*
通配符仅匹配包含点的目录。您还应该确保temp_ini
目录不在搜索ini文件的范围内;否则,Windows将尝试递归地将temp_ini\*.ini
的内容复制到自身。试试这个:
for /d %%I in ("D:\Home\*") do (
rem // create directory if not exist
if not exist "%%~I\temp_ini" md "%%~I\temp_ini"
rem // capture the output of dir /s /b
for /F "delims=" %%x in (
'dir /s /b "%%~fI\Windows\*.ini" 2^>NUL'
) do copy /y "%%~fx" "%%~I\temp_ini\"
)
pause