2016-12-22 13 views
1

特定のファイルタイプのフォルダ内のファイルをzipファイルにするにはバッチファイルが必要です。ファイルタイプは(.asc)です。特定のファイルタイプのフォルダ内のzipファイルへのバッチファイル

私は以下のコードを修正するのに役立つ人はいますか?

ありがとうございました。

for /r "C:\Test_Results\Report_%Date:~-10,2%_%Date:~-7,2%_%Date:~-4,4%" %%G in (.asc*)do ( 
    if /i "%%~nxa"==".asc" (
    pushd "%%a" 
    REM zip all files in the backup directory 
    FOR %%A IN (*.asc* *.cpi*) DO "C:\Program Files\WinRAR\WinRAR.exe" a -r "%%~nA.rar" "%%A" 
    FOR %%A IN (*.asc *.cpi) DO DEL "%%A" 
    popd 
) 
) 
+0

* WinRAR *は、ZIPアーカイブではなく* .rarファイルを作成するように指定した場合、RARアーカイブを作成します。だからあなたは '' %%〜nA.zip ''を使うか、スイッチ' -afzip'を使って、実際にZIPアーカイブになっているにもかかわらず、作成された* .rarファイルがRARアーカイブであるとみなさなければなりません。 – Mofi

+0

スタート* WinRAR *、メニューをクリック__Help__メニュー項目__ヘルプトピック__、タブ__Contents__、リスト項目を開く*コマンドラインモード*、ヘルプページを最初に読み込む*コマンドライン構文*、リストから開く*スイッチ*とヘルプを開くページ*アルファベットスイッチ一覧*。スイッチを上から下に読んでコマンドラインを構築します。 – Mofi

+1

ファイルの拡張子をファイルタイプで指定した場合は、.asc拡張子を持つすべてのファイルを取得するために '.asc *'ではなく '* .asc'を使うべきです。 ['*'](http://ss64.com/nt/syntax-wildcards.html)とは、「何でもこの場所では何もできません」という意味です。だから '.asc *'を使うことで、 '.asc'という名前のファイルや' .asc'で始まる名前のファイルを実際に求めています。 '* .asc *'は '.asc'という名前のファイルを言うのと同じです。あなたがIF文で確認しようとしていることは何ですか? –

答えて

0

以下のコードは、Logfileと呼ばれる任意のフォルダ内のファイルを圧縮します。これはうまくいきますが、私はもう少し違うことをする必要があります(最初の記事で述べたように)。

@J.Baoby私は.asc**.ascに変更しましたが、まだファイルを圧縮している問題があります。私は実際にIFステートメントの後にのためにのループが行われているかわからない。ここに必要ですか?

@echo 1.この手順では、C:\ TestReports \ Report_todayの日付の下にLogfileという名前のフォルダ内のすべてのファイルを圧縮します。

for /d /r "C:\TestReports\Report_%Date:~-10,2%_%Date:~-7,2%_%Date:~-4,4%" %%a in (Logfile*) do ( 
    if /i "%%~nxa"=="Logfile" (
     pushd "%%a" 
     REM zip all files in the backup directory 
     FOR %%A IN (*.blf* *.cpi*) DO "C:\Program Files\WinRAR\WinRAR.exe" a -r "%%~nA.zip" "%%A" 
     FOR %%A IN (*.blf *.cpi) DO DEL "%%A" 
     popd 
    ) 
) 
+0

私はこれがこの投稿への回答ではないが、このコードを追加して、コードが以前に何をしたのかを確認したい –

関連する問題