7-压缩文件夹内的文件
7-Zip the files inside of folders
我想创建一个批处理文件到下面的 .7z。因此 batch.bat 将位于执行它的根文件夹中,并将文件压缩到文件夹 1、文件夹 2、文件夹 3 等中,但 .7z 不会创建文件夹。它只需要将文件压缩到文件夹中,并创建一个单独的 .7z 文件,其中包含该文件夹的标题,而不是创建带有文件夹的 .7z。
root (batch.bat)
folder1
- file1.ext
folder2
- file1.ext
- file2.ext
folder3
- file1.ext
- file2.ext
- file3.ext
这是我用来创建 .7z 单个文件的代码。
PATH %%PATH%%;"C:\Program Files-Zip";
FOR %%I IN (*.*) DO 7z.exe a -t7z -m0=LZMA2 -mx=5 -mmt=ON "%%~nI.7z" "%%I"
使用这个:
for /d %%I in ("*") do 7z.exe a -t7z -m0=LZMA2 -mx=5 -mmt=ON "%%I.7z" ".\%%I\*"
您需要一个 for /D
循环来遍历 \root
中的目录,它围绕着 7z.exe
工具,如下所示:
for /D %%I in ("\root\*") do (
pushd "%%~fI"
"%ProgramFiles%-Zipz.exe" a -t7z -m0=LZMA2 -mx=5 -mmt=ON "%%~dpnxI.7z" ".\*"
popd
)
由于 7z.exe
似乎存储了相对于当前工作目录的路径,我暂时使用 pushd
和 popd
.
切换到每个迭代的路径
我建议以绝对方式指定 \root
路径(例如,D:\Data
),这样批处理程序就可以在任何地方运行。但是,如果您不想这样,请将 \root\*
部分替换为 *
。
顺便说一句,在实际使用7z.exe
时直接指定路径时不需要path
命令,就像我上面所做的那样(使用系统变量%ProgramFiles%
而不是它指向的专用目录)。
但是,您的语法无论如何都是错误的:您实际上是将 PATH
变量按字面意思设置为 %PATH%;"C:\Program Files-Zip";
,但我想您只是想将 "C:\Program Files-Zip"
附加到它,为什么你需要写 PATH %PATH%;"%ProgramFiles%-Zip"
.
我想创建一个批处理文件到下面的 .7z。因此 batch.bat 将位于执行它的根文件夹中,并将文件压缩到文件夹 1、文件夹 2、文件夹 3 等中,但 .7z 不会创建文件夹。它只需要将文件压缩到文件夹中,并创建一个单独的 .7z 文件,其中包含该文件夹的标题,而不是创建带有文件夹的 .7z。
root (batch.bat)
folder1
- file1.ext
folder2
- file1.ext
- file2.ext
folder3
- file1.ext
- file2.ext
- file3.ext
这是我用来创建 .7z 单个文件的代码。
PATH %%PATH%%;"C:\Program Files-Zip";
FOR %%I IN (*.*) DO 7z.exe a -t7z -m0=LZMA2 -mx=5 -mmt=ON "%%~nI.7z" "%%I"
使用这个:
for /d %%I in ("*") do 7z.exe a -t7z -m0=LZMA2 -mx=5 -mmt=ON "%%I.7z" ".\%%I\*"
您需要一个 for /D
循环来遍历 \root
中的目录,它围绕着 7z.exe
工具,如下所示:
for /D %%I in ("\root\*") do (
pushd "%%~fI"
"%ProgramFiles%-Zipz.exe" a -t7z -m0=LZMA2 -mx=5 -mmt=ON "%%~dpnxI.7z" ".\*"
popd
)
由于 7z.exe
似乎存储了相对于当前工作目录的路径,我暂时使用 pushd
和 popd
.
我建议以绝对方式指定 \root
路径(例如,D:\Data
),这样批处理程序就可以在任何地方运行。但是,如果您不想这样,请将 \root\*
部分替换为 *
。
顺便说一句,在实际使用7z.exe
时直接指定路径时不需要path
命令,就像我上面所做的那样(使用系统变量%ProgramFiles%
而不是它指向的专用目录)。
但是,您的语法无论如何都是错误的:您实际上是将 PATH
变量按字面意思设置为 %PATH%;"C:\Program Files-Zip";
,但我想您只是想将 "C:\Program Files-Zip"
附加到它,为什么你需要写 PATH %PATH%;"%ProgramFiles%-Zip"
.