我在这个模式中有一个文件夹结构。我刚刚显示了两个子目录和每个文件中的2个文件,但通常我在单个级别上有n个子目录,并且在它们下面有单个级别的文件(但可以是n个文件或文件夹)。
Directory master
folder 1:
file1
file2
folder 2:
file 3
file 4
folder x
我需要创建一个Windows脚本,一个从主目录运行的批处理文件,并给我两个包含各自文件的zip文件x.zip和y.zip。
1.zip (only contains file1 and file2 -without folder 1 )
2.zip (only contains file3 and file4 and folder x -without folder 2- )
zip文件不包含文件夹1或文件夹2
此代码执行此操作,但压缩到其子文件夹为 1.zip( 文件夹1 文件1 文件2 ) 2.zip( 文件夹2( 文件3 文件4 文件夹x ) )
for /d %%a in (*) do (ECHO zip -r -p "%%~na.zip" ".\%%a\*")
答案 0 :(得分:-1)
我相信你可以通过下面的代码使用7-zip到zip文件来实现你想要的东西:
@echo off
setlocal enabledelayedexpansion
set YOUR_DIR=%1
set OWNING_DIR=%~dp0
set zipext=.zip
for /f "tokens=*" %%L in ('dir /b "%YOUR_DIR%"' ) do (
set FOLDER_NAME=%%L
set zipname=%OWNING_DIR%\!FOLDER_NAME!%zipext%
set ERRORLEVEL=0
type NUL
set DIR_TO_CHECK=%YOUR_DIR%\!FOLDER_NAME!
IF EXIST "!DIR_TO_CHECK!"\* (
pushd %YOUR_DIR%\!FOLDER_NAME! >NUL 2>&1
if %ERRORLEVEL% equ 0 (
for /f "tokens=*" %%a in ( 'dir /b') do (
"C:\Program Files\7-Zip\7z.exe" a "!zipname!" "%%a"
)
)
popd
)
)
将其复制到名为zip_files.bat的批处理文件中,并使用
进行调用zip_files "Directory_master"