我有一个像这样的文件夹结构:
project bin my_program.exe misc_stuff.exe DROP_OVER_ME.bat input_file.txt
基本上,我希望能够将input文件拖放到DROP_OVER_ME.bat
batch file之上,并将input文件的path传递给exe文件。
这是我的batch file的样子:
@echo off start bin/my_program.exe %1 exit
当我拖放input_file.txt
到batch file,一切工作正常 – my_program.exe
成功接收input文件的path并运行。
但是,当input_file.txt
位于项目文件夹之外时,拖放它会使batch file抛出一个popup消息
Windows找不到“bin / my_program.exe”。 确保你input了正确的名字,然后再试一次。
我怎样才能修复我的batch file,所以我可以从文件系统内的任意位置拖放文件?
听起来像批处理脚本是以当前工作目录为基础,而不是包含脚本的目录。 (如果需要,可以通过在脚本中添加echo %cd% && pause
来测试。)尝试修改脚本,如下所示,以消除文件路径的任何歧义:
@echo off cd /d "%~dp0" start "" "bin\my_program.exe" "%~f1" exit /b