使用从另一个目录拖放到批处理文件上不起作用

Mic*_*x2a 11 windows batch-file

我有一个如下所示的文件夹结构:

project
    bin
        my_program.exe
        misc_stuff.exe
    DROP_OVER_ME.bat
    input_file.txt
Run Code Online (Sandbox Code Playgroud)

基本上,我希望能够将输入文件拖放到DROP_OVER_ME.bat批处理文件的顶部,并将输入文件的路径传递给exe.

这是我的批处理文件的样子:

@echo off
start bin/my_program.exe %1
exit
Run Code Online (Sandbox Code Playgroud)

当我拖放input_file.txt批处理文件时,一切正常 - my_program.exe成功接收输入文件的路径并运行.

但是,当input_file.txt它位于项目文件夹之外时,拖放它会使批处理文件弹出一条弹出消息说

Windows无法找到'bin/my_program.exe'.确保正确键入名称,然后重试.

如何修复我的批处理文件,以便从文件系统中的任意位置拖放文件?

roj*_*ojo 10

听起来像批处理脚本是立足当前的工作目录作为你拖动目录,并且不包含该脚本的目录.(echo %cd% && pause如果愿意,可以通过在脚本中添加一个来测试.)尝试按如下方式修改脚本以消除有关文件路径的任何歧义:

@echo off
cd /d "%~dp0"
start "" "bin\my_program.exe" "%~f1"
exit /b
Run Code Online (Sandbox Code Playgroud)