' ELLO,
使用Batch(或Powershell等),我想做以下事情: 从文件夹x,我想将所有.zip文件解压缩到他们自己的文件夹。
示例:
[Folder x]
- a.zip
- b.zip
- c.zip
向
[Folder x]
- [a]
- [b]
- [c]
- a.zip
- b.zip
- c.zip
直到我可以使用以下批次提取每个zip:
for /r %%f in (*.zip) do "C:\Program Files\7-Zip\7z.exe" x "%%f" -o"%%~dpf"
但是这导致所有内容都被提取到根文件夹而不是每个zip的新文件夹。 我使用Script to extract zip files in seperate folders to their own folders作为上述批次行的基础。
任何提示?
答案 0 :(得分:2)
注意:这是一个PowerShell示例,与您的批处理脚本有很大不同。只是一个FYI。
假设您在c:\test
文件夹中有一些ZIP文件。以下脚本将:
c:\test
要使此代码适合您,您需要更新:
7za.exe
的路径
7za.exe
环境变量中包含PATH
,则无需指定可执行文件的完整路径。我只是为了清晰起见。脚本:
$ZipFileList = Get-ChildItem -Path c:\test\*.zip;
foreach ($ZipFile in $ZipFileList) {
mkdir -Path ('{0}\{1}' -f $ZipFile.Directory, $ZipFile.BaseName);
$ArgumentList = 'x "{0}" -o"{1}\{2}\"' -f $ZipFile.FullName, $ZipFile.Directory, $ZipFile.BaseName;
Start-Process -FilePath c:\windows\7za.exe -ArgumentList $ArgumentList -Wait;
}