【发布时间】:2016-11-25 19:07:13
【问题描述】:
我正在尝试使用带有文件路径作为参数的 Git Bash 打开批处理文件。我可以使用%1 获取参数。但是,当我给它路径时,我得到了这个错误:
I/O 错误:无法打开文件“C:UsersUsernameDownloadsFile.pdf”
我这样运行我的批处理:
count.bat C:\Users\Username\Downloads\File.pdf
我尝试在文件路径中将\ 替换为/,这可行,但我打算将文件拖放到命令提示符中,并且我不想替换所有反斜杠。这是我所做的:
setlocal ENABLEDELAYEDEXPANSION
set variable="%1"
call set variable=%%variable:\=/%%
pdftotext %variable% -enc UTF-8 - | wc -m
这应该用/ 替换\,但事实并非如此。执行此操作与简单执行 pdftotext %1 -enc.... 得到相同的输出。
编辑:结果 Git Bash 将 \ 视为转义字符。这意味着我不能简单地输入没有引号的路径,因为它会试图逃避它。我最终使用了 geisterfurz007 关于打开 cmd.exe 的建议,然后执行file.bat,这将在我的file.sh 文件上调用sh.exe,然后执行整个操作。一种解决方法,但至少现在可以使用 cmd。
【问题讨论】:
-
不需要延迟扩展,也不需要
call和 double-%这里...有时(取决于程序)用双反斜杠替换单个反斜杠也可能会有所帮助。 ..
标签: bash batch-file