此批处理适用于在文件夹中创建多个存档,但会将根文件夹添加到存档中。我希望它只添加根目录中的文件。这是我的代码:
for /d %%X in (*) do "C:\Program Files\7-Zip\7z.exe" a "%%X.zip" "%%X"
答案1
您只需使用为了循环省略参数/d
,它将按照您描述创建 zip 存档文件的方式工作,并且不包含其父文件夹。
命令
笔记: 这将为目录中的每个文件添加一个 zip 存档文件,并且 zip 中只有该文件。
for %%X in (*) do "C:\Program Files\7-Zip\7z.exe" a "%%~X.zip" "%%~X"
笔记: 这会将目录中的所有文件添加到您指定的一个 zip 文件中。
for %%X in (*) do "C:\Program Files\7-Zip\7z.exe" a "<MyZipFileName>.zip" "%%~X"
嵌套循环命令
笔记: 这会仅将批处理文件所在目录下的目录中的文件添加到与目录名称匹配的 zip 文件中。
@ECHO ON FOR /F "TOKENS=*" %%A in ('DIR /S /B /AD "*"') DO ( FOR %%B IN (*) DO ( "C:\Program Files\7-Zip\7z.exe" a "%%~fA.zip" "%%~fA\*") ) EXIT
更多资源
- 对于/F
FOR /?
tokens=x,y,m-n - specifies which tokens from each line are to be passed to the for body for each iteration. This will cause additional variable names to be allocated. The m-n form is a range, specifying the mth through the nth tokens. If the last character in the tokens= string is an asterisk, then an additional variable is allocated and receives the remaining text on the line after the last token parsed.
- 目录
- 为了
- (添加)命令