
[英]Extract 7-zip files into their containing directory from a batch file?
[英]use batch scripting and 7-zip to compress files
我有一个由文件组成的文件夹:
“1.txt”
“2.txt”
由于 7-zip 通过批处理文件,我需要将它们压缩为 zip。 使用此脚本一切正常:
7za a my_zip.rar 1.txt 2.txt
我得到一个包含这两个文件的 my_zip.rar。
问题是我需要用执行批处理文件时的日期命名 zip 文件。 所以我尝试了这个脚本:
set year=%date:~10,4%
set month=%date:~4,2%
7za a %year%_%month%.rar 1.txt 2.txt
我得到一个名为“_2”的文件夹,其中包含一个包含我的 2 个文件的“.rar”。 我想要一个包含我的 2 个文件的“2014_12.rar”文件。
编辑:脚本输出:
D:\Users>zip.bat
D:\Users>set year=
D:\Users>set month=2/
D:\Users>echo _2/.rar 1.txt 2.txt
_2/.rar 1.txt 2.txt
D:\Users>7za a _2/.rar 1.txt 2.txt
7-Zip (A) 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
Scanning
Updating archive _2/.rar
Compressing 1.txt
Compressing 2.txt
Everything is Ok
我的 zip.bat 使用:
set year=%date:~10,4%
set month=%date:~4,2%
echo %year%_%month%.rar 1.txt 2.txt
7za a %year%_%month%.rar 1.txt 2.txt
在此先感谢您的帮助
您从DATE
错误地切割了年份和月份部分。 由于我不知道您的语言环境中日期的格式如何,我只能建议您在命令行上echo %DATE%
并正确计算字符数,记住您必须从 0 开始。(如果您有 dd/mm /yyyy,那将是 6,4 和 3,2)
这是我用来获取日期值的股票脚本。 这是建立在您的本地化是美国英语的序言中; 如果不是您的情况,您可能需要更改它。
@echo off
setlocal EnableDelayedExpansion
FOR /F "skip=1 tokens=1-6" %%A IN ('WMIC Path Win32_LocalTime Get Day^,Hour^,Minute^,Month^,Second^,Year /Format:table') DO (
if "%%B" NEQ "" (
SET /A FDATE=%%F*10000+%%D*100+%%A
SET /A FTIME=%%B*10000+%%C*100+%%E
)
)
SET DatePartYear=%FDATE:~0,4%
SET DatePartMonth=%FDATE:~4,2%
SET DatePartDay=%FDATE:~6,2%
C:
cd\
cd "Program Files\7-Zip"
7z.exe a D:\%DatePartYear%_%DatePartMonth%.rar D:\1.txt D:\2.txt
pause
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.