用于循环设置两个匹配变量

时间:2017-09-26 20:46:06

标签: windows batch-file for-loop command-line

我需要一个批处理来压缩所有用户个人资料中的特定文件夹。

这就是我现在所拥有的,但是,我想不出一种方法来设置%user%变量以匹配每个循环。

set ZIPFILE=C:\BKP\%user%.zip
for /d %%a in (
  "C:\Users\*"
) do (set "logFolder=%%~fa\AppData\Local\Intuit\QuickBooks\Log\27.0\" & call :woot)

:woot
"c:\Program Files\7-Zip\7z.exe" a %ZIPFILE% "%logFolder%"

我能够获得使用此行的所有用户的“列表”

dir /b /ad "C:\Users"

现在我需要找到一种方法让循环改变每个循环的变量%user%,例如,输出应该是:

7z.exe a C:\ BKP \ User1 .zip C:\ Users \ User1 \ AppData \ Local \ Intuit \ QuickBooks \ Log \ 27.0 \

7z.exe a C:\ BKP \ User2 .zip C:\ Users \ User2 \ AppData \ Local \ Intuit \ QuickBooks \ Log \ 27.0 \

非常感谢!

1 个答案:

答案 0 :(得分:0)

如果首先更改为users文件夹,则可以循环访问文件夹并使用循环变量。

c:
cd \Users
for /d %%a in ("*") do (
    set ZIPFILE=C:\BKP\%%a.zip &
    set "logFolder=c:\Users\%%a\AppData\Local\Intuit\QuickBooks\Log\27.0\" &
    call :woot)

:woot
"c:\Program Files\7-Zip\7z.exe" a %ZIPFILE% "%logFolder%"