10

テキストファイルa.txtがあります:

ハローワールド
グッドアフタヌーン

このファイルの内容を 1 行ずつ読み取るバッチ スクリプトを作成しました。
FOR /F "tokens=* delims=" %%x in (a.txt) DO echo %%x

"Hello" "World"区切り文字(スペース)のデフォルトの動作により、出力が得られます。この動作をオーバーライドして出力を取得するにはどうすればよいですか"Hello World" "Good Afternoon"

4

1 に答える 1

7

コマンド"for/ f" tokens = * delims = "%% x in(a.txt)do echo %% x"は、コマンドを変更しない限り、ほとんどのWindowsオペレーティングシステムで機能します。

したがって、代わりに、「for / f」コマンドを実行して文字列を追跡する前に、ディレクトリに「cd」して読み取ることができます。たとえば、ファイル「a.txt」がC:\ document and 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の理由でコンピュータでは機能しないため、これを行うためのより簡単で効率的な方法があります。「type」コマンドを使用します。

@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
于 2013-03-24T01:47:56.787 に答える