将所有用户的所有ini复制到另一个文件夹

时间:2015-03-06 14:35:38

标签: batch-file

我正在尝试将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

请帮助:/谢谢

1 个答案:

答案 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