我想打開一個批處理文件,使用Git Bash和一個文件路徑作爲參數。我可以使用%1
來獲取參數。然而,當我給它的路徑,我得到這個錯誤:作爲參數的文件路徑 - I/O錯誤:無法打開文件
I/O Error: Couldn't open file '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'和雙''%...在這裏有時(取決於程序)用雙反斜槓替換單個反斜槓也可能有所幫助... – aschipfl