ドラッグアンドドロップで%1を使用してバッチファイルをコピーする 質問する

ドラッグアンドドロップで%1を使用してバッチファイルをコピーする 質問する

ドラッグアンドドロップのバッチファイルを作ってみました。

ファイルは存在するが、バッチファイルでは見つけられないという問題があります...

.pngファイル(などpict_2013020808172137243.png)を別のフォルダにコピーして名前を変更したい。

パスには や_スペースなどの記号が含まれていますが、同じ機能 (名前を変更して に追加) を実現するためにマルチドラッグ アンド ドロップを実行する方法もわかりません.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

ベストアンサー1

ドラッグ&ドロップはバッチファイルではうまく実装されていません。
スペースがある場合は名前が引用符で囲まれますが、次のような特殊文字がある場合は引用符で囲まれません。&,;^

ファイル名にスペースのみが含まれる場合は、コードを少しだけ変更する必要があります。

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

%~1常に引用符なしのバージョンに展開されるため、常に安全に引用符を付けることができます。

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

詳細については、複数のファイルのバッチファイルをドラッグアンドドロップしますか?

おすすめ記事