2013-02-12 221 views
6

我有一個文本文件,A.TXT:閱讀文本文件

的Hello World
下午好

我已經寫一個批處理腳本讀取這個文件行內容通過線:
FOR /F "tokens=* delims=" %%x in (a.txt) DO echo %%x

我正在爲"Hello" "World"輸出由於分隔符(空間)的默認行爲。 我怎樣才能覆蓋這種行爲來獲得作爲"Hello World" "Good Afternoon"

+3

您的代碼解決了您的問題,您應該再次測試 – jeb 2013-02-12 14:22:28

+0

您的腳本適用於我。 – aphoria 2013-02-12 14:25:53

+0

不是。它沒有給出預期的輸出。 它與空間字符 – Tjs 2013-02-12 14:27:00

回答

6

您的代碼「for/f」tokens = * delims =「%% x in(a.txt)do echo %% x」將在大多數Windows操作系統,除非你修改了命令。

因此,您可以在執行「for/f」命令之前將字符串「cd」放入要讀取的目錄中。例如,如果文件「a.txt」位於C:\ documents和settings \%USERNAME%\ desktop \ a.txt,那麼您將使用以下內容。

cd "C:\documents and settings\%USERNAME%\desktop" 
for /f "tokens=* delims=" %%x in (a.txt) do echo %%x 
echo. 
echo. 
echo. 
pause >nul 
exit 

但是,由於這不適用於您的計算機的X原因有一個更容易和更有效的方式來做到這一點。使用「類型」命令。

@echo off 
color a 
cls 
cd "C:\documents and settings\%USERNAME%\desktop" 
type a.txt 
echo. 
echo. 
pause >nul 
exit 

或者,如果您希望他們選擇要在批處理中寫入的文件,您可以執行以下操作。

@echo off 
:A 
color a 
cls 
echo Choose the file that you want to read. 
echo. 
echo. 
tree 
echo. 
echo. 
echo. 
set file= 
set /p file=File: 
cls 
echo Reading from %file% 
echo. 
type %file% 
echo. 
echo. 
echo. 
set re= 
set /p re=Y/N?: 
if %re%==Y goto :A 
if %re%==y goto :A 
exit