2013-02-09 3 views
14

ドラッグアンドドロップでバッチファイルを作成しようとしました。 は、私は別のフォルダに.pngファイルを(pict_2013020808172137243.pngように)コピーして名前を変更したいファイルが場所が、それを見つけることができませんでしたバッチファイルにある問題...バッチファイルドラッグアンドドロップで%1を使用してコピー

を持っています。 パスには、_のようなシンボルとスペース、また、私はドンt know how to make multi-drag-and-drop to make the same function (rename and add to .zip`)です。 私はこれを試みたが、結果なしで:(

@ECHO OFF 
ECHO %1 
COPY "%1" "%CD%\test\" /Y /S 
REN "%CD%\mob\*.png" "%CD%\test\test.png" 
7za u -tzip "%appdata%\.virto\pack.zip" "test" -r 

答えて

32

ドラッグ&ドロップがひどくバッチファイルのために実装されている。
スペースが存在する場合が、特殊な文字が見つかったいない場合は、のような名前は、引用されています&,;^だけあなたのファイル名にスペースの場合

、あなただけのビットコードを変更する必要があります。

@ECHO OFF 
ECHO "%~1" 
COPY "%~1" "%CD%\test\" /Y /S 
REN "%CD%\mob\*.png" "%CD%\test\test.png" 
7za u -tzip "%appdata%\.virto\pack.zip" "test" -r 

%~1は、Uに常に拡大しますnquotedバージョンなので、常に安全な方法でそれらを引用することができます。詳細については

"c:\Docs and sets" -> %~1 -> c:\Docs and sets -> "%~1" -> "c:\Docs and sets" 
c:\Programs -> %~1 -> c:\Programs -> "%~1" -> "c:\Programs" 

Drag and drop batch file for multiple files?

+0

サンキュー読んでください! それは私には大いに役立ちます:) –

+0

* 'ドラッグ&ドロップはバッチファイルのためにひどく実装されています。 '* - これを前に読んで思い出したので、あなたの答えを見つけることができました。このステートメントは '.bat'と' .cmd'に同じように適用されますか?私はそれが[エクスプローラの問題](http://stackoverflow.com/a/5192427/2932052)であれば、なぜバッチスクリプトでは問題になるのでしょうか? – Wolf

+0

'.vbs'スクリプトと' .exe'ファイルで正しく動作していることを確認しました(もちろん '.cmd'で失敗しました)。本当に混乱している、エクスプローラは*スマートに思えるかもしれませんが、時には "不本意です"。それはあなたの意見では、なぜ尋ねるのが理にかなっていますか? – Wolf