我的文件结构是:
c:\csdata\folder1
c:\csdata\folder2
c:\csdata\folder3
etc
我正在尝试使用 7z 将所有文件夹备份到csdata
它们自己的存档中并保存到临时文件夹 (C:\butemp)。
这是我目前所拥有的:
For /D %%i in (C:\csdata\*.*) DO 7za a "%%i.7z" "%%i"
上述操作有效,但它会在csdata
文件夹中创建 7z 文件,因为%%i
它等于完整路径。
答案1
for
使您能够从循环变量(取自help for
)中提取(并组合)各个部分:
%~nI - 仅将 %I 扩展为文件名
%~xI - 仅将 %I 扩展为文件扩展名
(截断)
The modifiers can be combined to get compound results:
%~dpI - expands %I to a drive letter and path only
%~nxI - expands %I to a file name and extension only
(truncated)
所以你可以使用7za a "C:\butemp\%%~nxi.7z" "%%i"
争取help for
更多选择