web-dev-qa-db-ja.com

テキストファイルからの読み取り-バッチ

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

こんにちは世界
こんにちは

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

Delimiter(space)のデフォルトの動作により、"Hello" "World"として出力されます。この動作をオーバーライドしてouptutを"Hello World" "Good Afternoon"として取得するにはどうすればよいですか

10
Tjs

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

したがって、代わりに「for/f」コマンドを実行して文字列を追跡する前に、ディレクトリに「cd」で読み込むことができます。たとえば、ファイル「a.txt」がC:\ documents 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
7
cmd