批处理文件中的输入路径

Path of input in batch file

我有一个 .bat 文件,用于将 xps 文件转换为 pdf。为了有一个上下文菜单项,我将此 .bat 文件的快捷方式添加到 "send to" 文件夹。

.bat文件位于c:\programFiles\myFolder\,大致是这样的:

@echo off
c:\pathToExe\executable.exe -options -save.as=%1.pdf %1
del %1

executable.exe 生成一个与输入 xps 同名的 pdf 文件。问题是,它将它保存到 pathToExe,因为它不知道输入文件所在的路径。

我试过 pushd 和 popd,但要么我没有正确使用它们,要么它们用于不同的事情(它们 store/retrieve .bat 文件所在的文件夹)。

我想获取输入文件的文件夹,所以在脚本中我可以这样调用:

c:\pathToExe\executable.exe -options -save.as=inputFolder/%1.pdf %1

如果您认为有不同的、更好的方法,我完全愿意听取您的意见。

如果您使用发送到选项,

%1 应该是文件的完整路径。与拖放到批处理文件上没有什么不同。因此,从技术上讲,据我所知,您将其保存为双重扩展。所以你可以使用命令修饰符来获取不带扩展名的文件的路径和名称。

c:\pathToExe\executable.exe -options -save.as="%~dpn1.pdf" "%~1"