Batch file 批处理文件中输入的路径

Batch file 批处理文件中输入的路径,batch-file,input,windows-8,Batch File,Input,Windows 8,我有一个.bat文件,用于将xps文件转换为pdf。为了有一个上下文菜单项,我在“发送到”文件夹中添加了这个.bat文件的快捷方式 .bat文件位于c:\programFiles\myFolder\中,大致如下所示: @echo off c:\pathToExe\executable.exe -options -save.as=%1.pdf %1 del %1 executable.exe生成一个与输入xps文件同名的pdf文件。问题是,它将其保存到路径toexe,因为它不知道输入文件所在的路

我有一个.bat文件,用于将xps文件转换为pdf。为了有一个上下文菜单项,我在“发送到”文件夹中添加了这个.bat文件的快捷方式

.bat文件位于
c:\programFiles\myFolder\
中,大致如下所示:

@echo off
c:\pathToExe\executable.exe -options -save.as=%1.pdf %1
del %1
executable.exe
生成一个与输入xps文件同名的pdf文件。问题是,它将其保存到
路径toexe
,因为它不知道输入文件所在的路径

我试过使用pushd和popd,但要么我没有正确使用它们,要么它们被用于其他用途(它们存储/检索.bat文件所在的文件夹)

我想获取输入文件的文件夹,因此在脚本中我可以使用如下调用:

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

如果你认为有一种不同的更好的方法,我完全可以听到它。

% 1应该是整个文件的路径,如果你使用的是“发送到”选项。这与拖放到批处理文件没有什么不同。所以从技术上讲,我认为你是在把它保存为一个双扩展。因此,您可以使用命令修饰符获取不带扩展名的文件的路径和名称

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