0

7zip を実行するバッチ スクリプトがあり、すべてのファイルを 1 つのフォルダーに圧縮できます。Date Modified が 2010 またはその他の選択した日付のファイルのみを圧縮したいと考えています。ファイルを zip フォルダーにアーカイブした後、ファイルを削除したいと考えています。これが私の論理です。2012 年のファイルを見つけて、それらのファイルを 2012 という名前のフォルダーにアーカイブします。フォルダーを圧縮して、ファイルを削除します。0

これは私がこれまでに持っているものです。

@ECHO OFF

REM This sets name of the zip file
Set choice=
set /p choice=What is the year of the files?
PAUSE

REM This sets the path of the file
Set path=
set /p path=What is the path of the files on C:\'path'\?

REM Use 7Zip to Zip files in folder c:\path and place the zip archive in C:\path

ECHO.
ECHO Zipping all files in C:\%path% and moving archive to c:\%path%
ECHO.
PAUSE

C:\7z a -tzip "C:\%path%\%choice%.zip" "C:\%path%\*.*" -mx5
ECHO.
PAUSE

ECHO Would you like to Delete the files in orginal folder?
DEL "C:\%path%\*.*"
PAUSE

ECHO File is now zipped
4

1 に答える 1

1

かなり簡単なようです。ちなみに、私は7zipのコマンドラインスイッチに慣れていません。私はあなたがすでに7z.exeの構文を必要な方法で持っていることを当然のことと思っています。

@echo off

set 7z=C:\7z.exe
if not exist %7z% set /p 7z="Path to 7-zip executable? "

set /p year="What year do you wish to archive? "

set /p dir="What is the path of the files you wish to archive? "

mkdir "%year%"

rem output of dir is date time am/pm size filename
rem filename = 5th + additional tokens
for /f "tokens=5*" %%I in ('dir "%dir%" ^| find "/%year%"') do move "%dir%\%%I %%J" "%year%"

%7z% a -tzip "%dir%\%year%.zip" "%year%" -mx5

set /p I="I'm about to delete the %year% folder.  Hit Ctrl-C if this is a bad idea, or hit Enter to continue."
rmdir /q /s "%year%"

echo Done.  w00p.

forあなたが欠けていたのはループだと思います。私が書いたように、それはディレクトリリストを実行し、ユーザーがそれを入力するときに年と一致しないものを無視し、次にトークン5 *を圧縮のために%year%ディレクトリに移動します。

于 2013-01-28T19:42:36.077 に答える