私の%%x
は
a=23
b=56
c=89
と.txt
呼ばれるhi.txt
for %%x in (hi.txt) do (echo %%x:~0,1 %%x)
しかし、それは失敗しました....
ありがとうございました
各行の「最初の文字」をエコーしたいのですが、%%x:~0,1 を使用できません...
私の%%x
は
a=23
b=56
c=89
と.txt
呼ばれるhi.txt
for %%x in (hi.txt) do (echo %%x:~0,1 %%x)
しかし、それは失敗しました....
ありがとうございました
各行の「最初の文字」をエコーしたいのですが、%%x:~0,1 を使用できません...
あなたが何をしようとしているのか正確にはわかりません...ファイルhi.txtを解析し、変数(a、b、c)とそれらが等しい数を引き出したいと仮定しています..
@エコーオフ setlocal ENABLEEXTENSIONS for /f "tokens=1,2 delims==" %%i in (hi.txt) do ( エコー %%i の値は %%j )
これは出力されます
a の値は 23 です b の値は 56 c の値は 89
さらに詳しい情報が必要な場合は、「ヘルプ」を参照してください。
また、私の例では = 記号を解析しているため、各変数の幅は関係ありません。"MyText=100" のような行を使用することもできますが、それも機能します。~0,1 は、各値の幅が 1 文字のみであると想定しています。
これが役立つことを願っています。
行の最初の文字を出力するだけでよい場合は、次のスクリプトが機能するはずです。元の問題は遅延変数展開にあった可能性があると思います。詳細については、「help setlocal」および「help set」を参照してください。
このバージョンのスクリプトは、各行を一時変数に読み取り、最初の文字を firstCharacter という名前の別の変数に切り出します。!CMD スクリプトの遅延変数展開機能に使用されます。
@エコーオフ setlocal ENABLEEXTENSIONS、ENABLEDELAYEDEXPANSION for /f %%i in (hi.txt) do ( ライン全体を設定=%%i set firstCharacter=!wholeLine:~0,1! echo 最初の文字は !firstCharacter! ) エンドローカル
出力は...
最初のキャラクターは 最初の文字は b 最初の文字は c
これに %%i を直接使用する方法を見つけることができなかったため、一時変数 wholeLine. 明確にするために変数 firstCharacter を追加しましたが、これが機能するために存在する必要はありません。!wholeLine:~0,1! とエコーすることもできました。直接。
楽しむ。