3

ChatRoom バッチ ファイルがあり、すべてのユーザー入力が次のようになるテキスト ファイルが作成されます: Echo %User Input% >> C:\ChatterBox\Chat.txt

私はこれまでのところこれを持っています:

For /F "Delims=" %%A In (C:\ChatterBox\Chat.txt) Do (
Set Chat=%%A
)
Echo %Chat%

それは機能せず、テキスト ファイルの最初の行しか表示されませんでした。この方法ですべての行をエコーする方法を知っていますか?

%チャット%をエコー

そして、出力は次のようになりますか?

"Line one"
"Line two"
"Line three"
"Line four"
4

4 に答える 4

2

ループが終了した後に行をエコーし​​ているため、最後の行のみが印刷されます (最初の行ではありません)。ループ内で行を使用するには、変数展開の遅延を有効にする必要があります。そうしないと、反復ごとではなく、ループの開始時に変数が展開されます。有効にしたら、遅延拡張を取得する!var!代わりに使用します。%var%

方法は次のとおりです。

setlocal enabledelayedexpansion
For /F "Delims=" %%A In (Chat.txt) Do (
Set Chat=%%A
Echo !Chat!
)
于 2013-11-12T03:48:45.850 に答える
1

次のコマンドを使用します。

for /f "delims=" %%i in (chat.txt) do echo %%i

これにより、chat.txt ファイル内のすべての行が表示されます

それが役に立てば幸い!

于 2013-11-12T06:23:52.430 に答える
0

これにより、次の行が表示されます。

type "C:\ChatterBox\Chat.txt"
于 2013-11-12T07:54:25.237 に答える