2015-02-12 101 views
1

我有一個簡單的腳本,可以打印txt文件中的每一行。 但是,如果該txt文件名有任何空格,它將無法打開該文件。 爲了解決這個問題,我嘗試在它周圍放置空格。這然後被識別爲字符串而不是文件。任何建議如何通過文件讀取空格?蝙蝠腳本讀空間文件中的行

@echo off 
set filename="my file.txt" 
for /f "tokens=*" %%A in (%filename%) do (
    echo line=%%A 
) 

回答

2
@echo off 
set filename="my file.txt" 
for /f "USEBACKQtokens=*" %%A in (%filename%) do (
    echo line=%%A 
) 

或優選

@echo off 
set "filename=my file.txt" 
for /f "USEBACKQtokens=*" %%A in ("%filename%") do (
    echo line=%%A 
) 

的有usebackq選項改變如何報價類型由FOR /F

解釋參見for /?從提示爲文檔。

語法SET "var=value"(其中值可能爲空)用於確保任何雜散結尾空格不包含在分配的值中。在這種情況下,這並不相關,但在一般情況下,批次可以顯示對空間位置的敏感度。總體方案是確保提供的文件名包含分隔符,並且要求for/f被告知"item in quotes"是一個文件名,而不僅僅是一個字符串。

+0

完美。這兩種解決方案都像廣告一樣工 – 2015-02-12 02:24:16