批处理文件中的输入路径
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"
我有一个 .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"