12

次のようなフォルダー構造があります。

project
    bin
        my_program.exe
        misc_stuff.exe
    DROP_OVER_ME.bat
    input_file.txt

基本的には、DROP_OVER_ME.batバッチファイルの上に入力ファイルをドラッグアンドドロップして、入力ファイルのパスをexeに渡せるようにしたいです。

これは私のバッチファイルがどのように見えるかです:

@echo off
start bin/my_program.exe %1
exit

input_file.txtバッチ ファイルにドラッグ アンド ドロップすると、すべてmy_program.exeが正常に機能し、入力ファイルのパスを正常に受け取り、実行されます。

ただし、input_file.txtプロジェクト フォルダーの外にある場合、ドラッグ アンド ドロップすると、バッチ ファイルがポップアップ メッセージを表示します。

Windows は「bin/my_program.exe」を見つけることができません。名前を正しく入力したことを確認してから、もう一度やり直してください。

ファイルシステム内の任意の場所からファイルをドラッグアンドドロップできるように、バッチファイルを修正するにはどうすればよいですか?

4

1 に答える 1

10

バッチスクリプトは、スクリプトを含むディレクトリではなく、ドラッグ元のディレクトリとして現在の作業ディレクトリを基にしているように聞こえます。(必要に応じて、スクリプトにを追加することでこれをテストできecho %cd% && pauseます。)ファイルパスに関するあいまいさを取り除くために、次のようにスクリプトを変更してみてください。

@echo off
cd /d "%~dp0"
start "" "bin\my_program.exe" "%~f1"
exit /b
于 2013-03-07T01:30:11.397 に答える