批处理文件中的输入路径

时间:2015-10-30 14:46:11

标签: 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文件。问题是,它将其保存到pathToExe,因为它不知道输入文件所在的路径。

我尝试过pushd和popd,但要么我没有正确使用它们,要么它们用于不同的东西(它们存储/检索.bat文件所在的文件夹)。

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

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

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

1 个答案:

答案 0 :(得分:1)

如果您使用send to选项,

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

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