web-dev-qa-db-ja.com

テキストファイルの特定の行をバッチファイルの変数に読み取る

書き込もうとしているバッチファイルの1つで、5行のテキストファイルの最後の行を変数に読み込む必要があります。これを行うことを考えた1つの方法は、テキストファイルに配置された各行が前の行を上書きすることです(ファイルの作成と行はすべてコマンド、具体的にはslmgr/xprによって作成されるため)が、方法がわかりませんこれを行う。これを行うための提案や代替方法は大歓迎です!

cscript %windir%\system32\slmgr.vbs /xpr > xprtest.txt
pause
for /F "skip=4 delims=" %i in (xprtest.txt) set /p xprvar= <xprtest.txt
pause
echo %xprvar%
6
user2997654

特に5行目が必要な場合:

set "xprvar="
for /F "skip=4 delims=" %%i in (xprtest.txt) do if not defined xprvar set "xprvar=%%i"

OR

for /F "skip=4 delims=" %%i in (xprtest.txt) do set "xprvar=%%i"&goto nextline
:nextline

行数に関係なく最後の行が必要な場合:

for /F "delims=" %%i in (xprtest.txt) do set "xprvar=%%i"
7
Magoo

forコマンドは、最近では非常に強力です。

for /F "skip=4 delims=" %i in (test.txt) do echo %i

最初の4行をスキップし、5行目を効果的に残します。区切り文字がないため、その行の最初のトークンだけでなく、完全な行を取得できます。

echo %iを5行目でやりたいことで置き換えます。

4
Thomas Weller