【发布时间】:2016-08-21 08:02:42
【问题描述】:
我已经编写了一个批处理文件(使用 7-Zip),它将文件放在一个文件夹中,并将每个文件分别压缩到批处理文件中创建的另一个文件夹中,然后我从原始文件夹中删除了这些文件。
我尝试编写它以便它会压缩到同一个文件夹中,但它会删除所有内容,因为我的最后一条命令是从同一个文件夹中删除文件。
原文件夹名为SmartLogger,新文件夹为SmartLoggerZipped。
我需要压缩SmartLogger 上的文件并将它们保留在同一个文件夹中,然后删除该文件夹中的原始文件。
@echo off
SET hr=%time:~0,2%
IF %hr% lss 10 SET hr=0%hr:~1,1%
SET SrcDir=E:\Logs\SmartLogger
SET DestDir=E:\Logs\SmartLoggerZipped
IF NOT EXIST "%DestDir%" MD "%DestDir%"
ECHO.
ECHO Compressing files and folders in E:\Logs\SmartLogger
ECHO drive and moving to E:\Logs\SmartLoggerZipped and
ECHO then delete from E:\Logs\SmartLogger
ECHO.
FOR %%A IN ("%SrcDir%\*.*") DO 7za a -tzip "%DestDir%\%%~NXA.zip" "%%~A" -mx5 && DEL /Q /F "%%~A"
ECHO.
PAUSE
【问题讨论】:
-
环境变量
hr根本没有使用。并且批处理文件有效,尽管您应该将*.*修改为*并将%%~NXA.zip修改为%%~nxA.zip以更美观。那么您的问题分别是什么? -
是的,我想先在我正在创建的新文件夹上创建一个日期,所以它留在这里,我会删除它。我想压缩到同一个文件夹而不创建新文件夹,并从该目录中删除旧文件。
标签: windows batch-file 7zip zipfile