2011-01-03 15 views
1

テキストファイルの出力を変数に保存したいので、ファイル全体をパラメータとして渡すことができます。ファイル出力を変数に格納

私はWindows 2003 Serverを使用しています。私が使っていた

10.20.210.100 fish 
10.20.210.101 rock 

テキストファイルのような複数のラインを持っている

Set /P var=<file.txt 

それはファイルの最初の行のみを読み取ります。

私もFORループで試しましたが、最後の行だけが変数に割り当てられました。

答えて

2

ファイルの完全な内容を1つの変数に入れる簡単な方法はありません。 変数の長さは〜8100までです。 そして、変数にCR/LFを取得するのは複雑です。

しかし、FORループでは、それぞれの1行を得ることができます。 は、あなたがこの

@echo off 
SETLOCAL EnableDelayedExpansion 
set n=0 
for /f "delims=" %%a IN (example.txt) do (
    set /a n+=1 
    set "line[!n!]=%%a" 
    echo line[!n!] is '%%a' 
) 
set line 

使用することができますまたは1つの変数のみですべてを取得するために、単一の変数にそれぞれの行を取得するには(CRなし/ LF:

batch script read line by line

EDITを見てみてください)

@echo off 
SETLOCAL EnableDelayedExpansion 
set "line=" 
for /f "delims=" %%a IN (example.txt) do (
    set "line=!line! %%a" 
) 
echo !line! 
+0

同じことが非常に簡単な方法で達成できます。しかし、それは私の問題を解決しません。 –

+0

あなたの具体的な問題は何ですか?ファイルを1行ずつ読むことができる場合は、各行を調べることができます。 – jeb

+0

私の目的は、すべての行を変数ごとに1つの変数または各行に割り当てることです。 –

0

Jebのスクリプトは完璧に動作しますが、%line%をエコーすると各行が含まれていますファイルタイムの行はありません。 echo!Lineを使用すると!それには1行が含まれています!他のラインとも。私はスクリプトで少し修正を加えましたが、今は期待通りの結果を得ています。

@echo off 
SETLOCAL EnableDelayedExpansion 
set "line=" 
for /f "delims=" %%a IN (example.txt) do (
set "line1=%%a" 
set "line=!line1! and %%a" 
) 
echo !line! 

または

echo %line% 

今、あなたは、ボットの例でも同じ結果が得られます。

関連する問題