1

これは私のコードです。一度に複数の画像をドラッグアンドドロップして、すべてを圧縮します。

if [%1]==[] goto :eof
:loop
start %~dp0ImgCompress.exe %1
shift
if not [%1]==[] goto loop

最初のファイルではうまく機能しますが、2番目以降では、相対パス(%〜dp0)がドラッグアンドドロップしたファイルの相対パスになります。私の考えでは、%〜dp0は実行中のファイルの相対パスでした。この問題を克服する方法はありますか?

4

1 に答える 1

2

バッチ ファイルへのパスは %0 です。Shift は %1 を %0 にします。問題を解決するには、%~dp0 を保存します:

set mydir=%~dp0

そして後でそれを使用します:

start %mydir%ImgCompress.exe %1
于 2012-06-01T20:35:37.657 に答える