Shell 7-Zip命令行帮助(批处理文件)
我需要从批处理文件运行7-Zip并执行一些任务,我想知道这是否可能。以下是我的情况: 我有一个文件夹“X:/Archived Backups/”,其中包含归档文件和包含归档文件的子目录 其中一些档案还包含进一步的档案 我需要递归地扫描目录和子目录,并使用7-Zip将每个归档文件以相同的名称(归档文件名称)解压缩到一个文件夹中 我还需要它来提取档案中的档案中的档案等 最后,我需要它在解压缩时删除归档文件(包括归档文件中的归档文件),只保留解压缩的文件夹 这可能吗?如果可以,可以从命令行执行吗?我该怎么做 非常感谢 :)您可以使用和作为起点 对于迭代和测试目录:Shell 7-Zip命令行帮助(批处理文件),shell,batch-file,command-line,command-line-arguments,7zip,Shell,Batch File,Command Line,Command Line Arguments,7zip,我需要从批处理文件运行7-Zip并执行一些任务,我想知道这是否可能。以下是我的情况: 我有一个文件夹“X:/Archived Backups/”,其中包含归档文件和包含归档文件的子目录 其中一些档案还包含进一步的档案 我需要递归地扫描目录和子目录,并使用7-Zip将每个归档文件以相同的名称(归档文件名称)解压缩到一个文件夹中 我还需要它来提取档案中的档案中的档案等 最后,我需要它在解压缩时删除归档文件(包括归档文件中的归档文件),只保留解压缩的文件夹 这可能吗?如果可以,可以从命令行执行吗?我该
FOR %%i IN (%VAR%) DO IF EXIST %%~si\NUL ECHO It's a directory
对于文件,请使用7-zip命令检查文件扩展名并进行解压缩:测试它是否满足您的需要-它应该将文件解压缩到
x:\extracted\path\filename
文件夹中
它不会删除归档文件,因为您必须先进行测试
首先检查7z.exe
的路径
@echo off
set "location=x:\extracted"
md "%location%" 2>nul
for /r "X:\Archived Backups" %%a in (*.7z) do (
md "%location%\%%~pna"
pushd "%location%\%%~pna" && ("c:\program files\7-zip\7z.exe" x "%%a" & popd)
)
pause
答案在很大程度上取决于您使用的外壳。它是哪一个?@jlahd加上x:作为驱动器号,那么它必须是Windows。@foxidrive Windows是一个操作系统,而不是外壳。我有点希望asker不局限于
cmd.exe
,不幸的是这是Windows的默认shell。是的Windows。我把它整理好了。感谢您的回复。至于删除部分,我使用了del/S/F*.zip*.7z*.rar
等方法来删除归档文件。然后我用删除了所有空目录,其中/f“usebackq delims=“%%d in(
”dir/ad/b/s | sort/R“)do rd“%%d”
您在我的脚本中也使用了*.zip*.7z*.rar吗?谢谢您的回复。我把它整理好了:)