2016-08-21 4 views
3

バッチファイル(7-Zipを使用)を作成して、1つのフォルダのファイルを取り込み、バッチファイルで作成した別のフォルダ元のフォルダのファイル。7-ジップを使用して同じファイルをジップして削除する

私は同じフォルダに圧縮するように書き込もうとしましたが、同じフォルダからファイルを削除するという最後のコマンドのためにすべてを削除します。

元のフォルダは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 
+0

環境変数 'hr'はまったく使用されません。バッチファイルは '*。* 'を' * 'に変更し、' %%〜NXA.zip'から '%%〜nxA.zip'をより美しくするために修正するべきです。だからあなたは何を求めていますか? – Mofi

+0

はい作成している新しいフォルダに最初に日付を作成したかったので、ここに残しました。削除します。 新しいフォルダを作成せずに同じフォルダにジップし、そのディレクトリから古いファイルを消去したいとします。 –

答えて

1

私たちはE:\Logs\SmartLoggerファイルを含むフォルダを想定してみましょう:

  • のreadme.txt
  • license.txtを

    • 7za920.zip
    • 7-zip.chm
    • 目的は、このフォルダ内の各ファイルをZIPファイルwiに圧縮することですこのファイル名は、このバッチファイルを毎日1回実行できるように、そのフォルダ内の既存のファイル*.zipをすべて無視します。

      @echo off 
      for %%A in ("E:\Logs\SmartLogger\*") do (
          if /I not "%%~xA" == ".zip" 7za.exe a -tzip -mx5 -y -- "%%~dpnA.zip" "%%~A" >nul && del /Q /F "%%~A" 
      ) 
      

      フォルダE:\Logs\SmartLoggerは、上記のバッチファイルを実行した後に含まれていますは7-ZIPが含まれています...

    • 7-zip.zipに触れない...

      • 7za920.zip .chm
      • license.zip ... にはlicense.txtが含まれています
      • readme.zip ... があるreadme.txt

      や目標がそのフォルダ内のすべての既存の*.zipのファイルを無視して同じファイル名とファイル拡張子のZIPファイルには、このフォルダ内の各ファイルを圧縮することであるが含まれていますこのバッチファイルを毎日1回実行し、各圧縮ファイルにファイル拡張子.zipを追加することができます。

      フォルダE:\Logs\SmartLoggerが含まれてい
      @echo off 
      for %%A in ("E:\Logs\SmartLogger\*") do (
          if /I not "%%~xA" == ".zip" 7za.exe a -tzip -mx5 -y -- "%%~A.zip" "%%~A" >nul && del /Q /F "%%~A" 
      ) 
      

      上記のバッチファイルを実行した後:

    • 7-zip.chm.zipに触れ

      • 7za920.zip ... ない... は7が含まれています-zip.chm
      • license.txt.zip ... にはlicense.txtが含まれています
      • readme.txt.zip ... にはreadmeが含まれています。

      TXT 2つのバッチファイルの違いは"%%~A.zip""%%~dpnA.zip"です。

      使用されているコマンドとその動作方法を理解するには、コマンドプロンプトウィンドウを開き、次のコマンドを実行して、コマンドごとに表示されているすべてのヘルプページをすべてよく読んでください。

      • echo /?
      • if /?
      • for /?
      • 7za --help

      そして>nulの説明についてもUsing command redirection operatorsに関するMicrosoftの記事を参照してください。

    +0

    ありがとう!今はうまくいっています! –

    関連する問題