我有一个由文件组成的文件夹:
“1.txt的”
“2.txt”
由于7-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
提前感谢您的帮助
答案 0 :(得分:0)
您正在从DATE
错误地剪切年份和月份部分。由于我不知道如何在您的语言环境中格式化日期,我可以在命令行上建议您echo %DATE%
并正确计算字符,记住您必须以0开头。(如果您有dd / mm / yyyy,即6,4和3,2)
答案 1 :(得分:0)
这是我用来获取日期值的股票脚本。这是根据您的本地化是美国英语的前言构建的;如果不是你的情况,你可能需要改变它。
@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