我如何只压缩子文件夹的内容而不是子文件夹本身?
How do i ONLY zip the subfolders' content rather than the subfolder itself?
我有一些文件夹,里面的内容是这样的:
Mainfolder
|
|---SubFolder1
|
|----ContentFiles1
|----MoreContentFiles1
|
|---SubFolder2
|
|----ContentFiles2
|----MoreContentFiles2
|
|---SubFolder3
|
|----ContentFiles3
|----MoreContentFiles3
并想像这样压缩内容:
Subfolder1.zip
|
|--ContentFiles1
|----MoreContentFiles1
Subfolder2.zip
|
|--ContentFiles1
|----MoreContentFiles1
Subfolder3.zip
|
|--ContentFiles1
|----MoreContentFiles1
但是,有一个问题。这些文件夹中有将近 600 个需要压缩。我尝试了各种几乎有效但没有成功的方法,例如:
for /d %%X in (*) do "F:\Program Files-Zipz.exe" a "%%X.zip" "%%X\" -mx=5 –tzip
这个 bat 文件几乎满足了我的需要,但那些 zip 文件的格式是:
Subfolder1.zip
|
|--Subfolder1(folder)
|----ContentFiles1
|----MoreContentFiles1
Subfolder2.zip
|
|--Subfolder2(folder)
|----ContentFiles1
|----MoreContentFiles1
Subfolder3.zip
|
|--Subfolder3(folder)
|----ContentFiles1
|----MoreContentFiles1
遗憾的是,这些无法使用。
起初这似乎不是一项艰巨的任务,但即使在研究了一些有关批编码的知识并观看了多个不同的 YouTube 视频之后,我仍然没有合适的解决方案。问题是我发现的许多方法要么根本不起作用,要么已经过时了。
示例图片:
What i get with methods i have tried
What i need
甚至打不开的代码(过时或我使用不当):
@echo off
setlocal
set zip="C:\Program Files\WinRAR\rar.exe" a -r -u
dir C:\MyPictures /ad /s /b > C:\MyPictures\folders.txt
for /f %%f in (C:\MyPictures\folders.txt) do if not exist C:\MyPictures\%%~nf.rar %zip% C:\MyPictures \%%~nf.rar %%f
endlocal
exit
和:
@echo off
setlocal
for /d %%x in (C:\MyPictures\*.*) do "C:\Program Files-Zipz.exe" a -tzip "%%x.zip" "%%x\"
endlocal
exit
均来自:Batch file to compress subdirectories
注意:我确实更改了这些批处理代码的目录,但是没有用,我不确定“folder.txt”目录是什么意思。
因此,如果有人知道任何事情或者可以告诉我这是否不可能,那就太好了:)。
使用 .\folder\*
语法(点和星号):
for /d %%G in (*) do "F:\Program Files-Zipz.exe" a "%%G.zip" ".\%%G\*" -mx=5 –tzip
我有一些文件夹,里面的内容是这样的:
Mainfolder
|
|---SubFolder1
|
|----ContentFiles1
|----MoreContentFiles1
|
|---SubFolder2
|
|----ContentFiles2
|----MoreContentFiles2
|
|---SubFolder3
|
|----ContentFiles3
|----MoreContentFiles3
并想像这样压缩内容:
Subfolder1.zip
|
|--ContentFiles1
|----MoreContentFiles1
Subfolder2.zip
|
|--ContentFiles1
|----MoreContentFiles1
Subfolder3.zip
|
|--ContentFiles1
|----MoreContentFiles1
但是,有一个问题。这些文件夹中有将近 600 个需要压缩。我尝试了各种几乎有效但没有成功的方法,例如:
for /d %%X in (*) do "F:\Program Files-Zipz.exe" a "%%X.zip" "%%X\" -mx=5 –tzip
这个 bat 文件几乎满足了我的需要,但那些 zip 文件的格式是:
Subfolder1.zip
|
|--Subfolder1(folder)
|----ContentFiles1
|----MoreContentFiles1
Subfolder2.zip
|
|--Subfolder2(folder)
|----ContentFiles1
|----MoreContentFiles1
Subfolder3.zip
|
|--Subfolder3(folder)
|----ContentFiles1
|----MoreContentFiles1
遗憾的是,这些无法使用。
起初这似乎不是一项艰巨的任务,但即使在研究了一些有关批编码的知识并观看了多个不同的 YouTube 视频之后,我仍然没有合适的解决方案。问题是我发现的许多方法要么根本不起作用,要么已经过时了。
示例图片:
What i get with methods i have tried
What i need
甚至打不开的代码(过时或我使用不当):
@echo off
setlocal
set zip="C:\Program Files\WinRAR\rar.exe" a -r -u
dir C:\MyPictures /ad /s /b > C:\MyPictures\folders.txt
for /f %%f in (C:\MyPictures\folders.txt) do if not exist C:\MyPictures\%%~nf.rar %zip% C:\MyPictures \%%~nf.rar %%f
endlocal
exit
和:
@echo off
setlocal
for /d %%x in (C:\MyPictures\*.*) do "C:\Program Files-Zipz.exe" a -tzip "%%x.zip" "%%x\"
endlocal
exit
均来自:Batch file to compress subdirectories
注意:我确实更改了这些批处理代码的目录,但是没有用,我不确定“folder.txt”目录是什么意思。
因此,如果有人知道任何事情或者可以告诉我这是否不可能,那就太好了:)。
使用 .\folder\*
语法(点和星号):
for /d %%G in (*) do "F:\Program Files-Zipz.exe" a "%%G.zip" ".\%%G\*" -mx=5 –tzip