我有下面的批处理文件脚本。
for /d %%X in (*) do "c:\Program Files\7-Zip\7z.exe" a "%%X.zip" "%%X\"
这将创建所有10个文件夹的zip文件,但是会在zip文件中创建具有相同名称的子文件夹,而我不希望这样。直接文件应在zip文件中可见。 有什么办法可以编辑以上脚本来解决此问题。
答案 0 :(得分:0)
创建一个文本文件,然后复制并粘贴以下内容:
START /W powershell Compress-Archive folder-name foldername.zip
START powershell Move-Item -Path "path-of-the-zipped-file" -Destination "path-you-want-the-file-to-be-moved-to"`
另存为zip.bat
答案 1 :(得分:0)
选中zipjs.bat。尝试将文件夹放在示例下面的列表中(zipjs.bat
应该在同一目录中):
@echo off
set "folders_list=C:\folder1;C:\folder2;C:\folder3"
set "destination=C:\my.zip"
del "%destination%" /Q /F >nul 2>&1
for %%a in ("%folders_list%:;=";"%") do (
if not exist "%destination%" (
call zipjs.bat zipItem -source "%%~fa" -destination "%destination%" -force no
) else (
call zipjs.bat addToZip -source "%%~fa" -destination "%destination%" -force no
)
)
编辑。在OP做出一些澄清后:
@echo off
set "folders_list=C:\folder1;C:\folder2;C:\folder3"
set "destination=C:\my.zip"
del "%destination%" /Q /F >nul 2>&1
for %%a in ("%folders_list%:;=";"%") do (
if not exist "%destination%" (
call zipjs.bat zipDirItems -source "%%~fa" -destination "%destination%" -force no
) else (
for %%# in ("%%a\*") do (
call zipjs.bat addToZip -source "%%~f#" -destination "%destination%" -force no
)
)
)
答案 2 :(得分:0)
如果我正确理解了您的问题,执行任务的最简单方法是第一步进入每个目录(使其变为“当前”),将所有内容压缩到当前目录中,(默认),然后再次退出。
@For /D %%G In (*)Do @PushD "%%G"&&"%ProgramFiles%\7-Zip\7z.exe" a -tzip "..\%%G.zip" -r&PopD