Batch file 使用批脚本和7-zip压缩文件

Batch file 使用批脚本和7-zip压缩文件,batch-file,7zip,Batch File,7zip,我有一个由文件组成的文件夹: 1.txt 2.txt 我需要通过批处理文件将它们压缩到zip中,这要感谢7-zip。 使用此脚本,一切正常: 7za a my_zip.rar 1.txt 2.txt set year=%date:~10,4% set month=%date:~4,2% 7za a %year%_%month%.rar 1.txt 2.txt 我得到一个包含这两个文件的my_zip.rar 问题是我需要用批处理文件执行时的日期来命名zip文件。所以我尝试了这个脚本: 7

我有一个由文件组成的文件夹:

1.txt 2.txt

我需要通过批处理文件将它们压缩到zip中,这要感谢7-zip。 使用此脚本,一切正常:

7za a my_zip.rar 1.txt 2.txt 
set year=%date:~10,4%
set month=%date:~4,2%

7za a %year%_%month%.rar 1.txt 2.txt 
我得到一个包含这两个文件的my_zip.rar

问题是我需要用批处理文件执行时的日期来命名zip文件。所以我尝试了这个脚本:

7za a my_zip.rar 1.txt 2.txt 
set year=%date:~10,4%
set month=%date:~4,2%

7za a %year%_%month%.rar 1.txt 2.txt 
我得到一个名为_2的文件夹,其中包含一个.rar,其中包含我的2个文件。 我想要一个包含我的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%,并正确计算字符数,记住必须从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

对我来说效果很好,可以尝试在rar文件名中使用:%year%\uu%month%.rarOk,因为使用这个exe 7za,添加双引号不会改变任何东西。无论如何,谢谢你,我不明白。您仍然有问题吗?是的,我也尝试了7z.exe,结果相同:一个名为_2的文件夹包含.rar,其中包含我的2个文件。这就像我的批处理文件中的名称没有得到很好的解释,但我不明白为什么它对您有效。您可以添加echo%year%\uuu%month%.rar 1.txt 2.txt行并将输出添加到问题中吗?wmic的积极作用是,输出独立于区域设置。有关获得相同结果的更简单的wmic查询,请参阅