LoginSignup
0
1

More than 3 years have passed since last update.

拡張子.ziや.zi_を.zipにするバッチファイルをつくってみた

Posted at

まえがき(作成した理由)

以前、タイトルにあるようなツールをC#で作ったが、ウイルス誤検知1されるリスクを考慮し、バッチファイルで似たようなものを作ってみた。
※自分はバッチファイルについては素人なので、まずいところがあれば指摘いただけると助かります。

つかいかた

下記のバッチファイルZiRenamer.batを、拡張子.ziと.zi_に関連付けしておく。

機能

  • Microsoft Outlook のメールの添付ファイル.ziや.zi_を開くと、tempフォルダ以下にZiRenamerというフォルダを作成し、その中にzipファイルとしてコピーし、そのフォルダを開く。
  • それ以外の箇所で.ziや.zi_を開くと、.zipにリネームする。

注意事項

  • 上書きチェックは考慮していない。
  • tempフォルダは勝手にデータが消えていく可能性があるため、やりたいことに応じて、適宜バッチファイルを編集してカスタマイズしてください。
  • いろいろ未検証(空白を含むファイルパスに対する動作など)なので、ご利用は自己責任でお願いします。

バッチファイル

ZiRenamer.bat

echo off
set olPath=%LOCALAPPDATA%\Microsoft\Windows\INetCache\Content.Outlook\
set destOlPath=%TEMP%\ZiRenamer\
rem set destOlPath=%USERPROFILE%\Documents\ZiRenamer\
set zipExt=.zip
set tgtZipExt1=.zi
set tgtZipExt2=.zi_
set tmpPath=%~dp1
set tmpOlPath=%tmpPath:~0,-9%
set tmpExt=%~x1
set destFileName=%~nx1
set flag=0

rem .zi
if %tmpExt%==%tgtZipExt1% (
    set destFileName=%destFileName:~0,-3%%zipExt%
    set flag=1
)
rem .zi_
if %tmpExt%==%tgtZipExt2% (
    set destFileName=%destFileName:~0,-4%%zipExt%
    set flag=1
)

if %tmpOlPath%==%olPath% (
    rem outlook attachment
    if %flag%==1 (
        echo outlook attachment
        if not exist "%destOlPath%" (
            mkdir "%destOlPath%"
        )
        echo on
        copy "%~f1" "%destOlPath%%destFileName%"
        echo off
        start "" "%destOlPath%"
    )
) else (
    if %flag%==1 (
        move "%~f1" "%tmpPath%%destFileName%"
    )
)

rem 導入後は下記のpauseは削除推奨
pause

参考サイト


  1. 過去、自作ツールがウィルス対策ソフトに検疫(誤検知)されたことがある(ファイルの読み込みと描画くらいしかしていなかったのだが、、)。最近職場環境が変わり、ウイルス対策ソフトが違うものになったので、exeよりは誤検出されにくいであろうバッチファイルで同様のツールをつくることにした次第。。 

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1