我正在寫一個短批處理腳本,它嘗試取第一行文本文件並刪除尾部反斜槓(如果存在)。然後這將重複輸入文件的其餘行。但是,當我運行腳本時,行不會刪除反斜槓。我的猜測是這是一個簡單的修復,但我已經嘗試了幾種故障排除方法,但沒有運氣。代碼在下面發佈供參考。謝謝!刪除批處理文件中的尾部反斜槓
@echo on
setLocal EnableDelayedExpansion
::set firstline to firstline of test.txt
set /p firstline=<test.txt
::Remove trailing slash if present
IF !firstline:~-1!==\ SET firstline=!firstline:~0,-1!
::Output firstline (without \ to new txt file)
echo !firstline!>test2.txt
endlocal
test.txt文件:
C:\Desktop\example\path\
C:\Desktop\example\path\2\
C:\Desktop\example\path\test\
感謝您的澄清詹姆斯。但是,當我用test.txt(現在列在原始問題中)測試文件時,尾部的反斜槓仍然沒有被刪除。還有什麼我失蹤? –
@JeffK - 你可能真的在該行的末尾有一個尾部空格。這樣做的結果是:'ECHO%stuff%> file'看起來比'ECHO%stuff%file>好,但在每行的末尾添加一個空格。實際上,如果您使用echo!firstline,則每次運行我的代碼時都會增加__another__額外的空間! > test2.txt',而不是'echo!firstline!> test2.txt'。 –
你的觀察是正確的,我也通過使用下面的一行來解決這個問題(考慮到空間):「IF」!firstline:〜-2!「==」\「SET firstline =!firstline:〜 ,-2!'。非常感謝你的幫助,我很感激! –