これが問題全体です。コンピューター上の特定のアダプターの IP アドレスを読み取り、最後の桁を 1 減らし、新しい IP アドレスをルートとして追加しようとしています。これまでのところ、次の方法で IP アドレスを抽出できました。
netsh interface ip show config name=15| findstr "IP Adress" > C:\ip.txt
for /f "tokens=2 delims=:" %%F in (c:\ip.txt) do echo %%F > c:\ipstripped.txt
for /f "tokens=2 delims=1" %%F in (C:\ipstripped.txt) do echo 1%%F >c:\ipdigits.txt
これにより、IPアドレスが含まれているファイルが取得されますが、空白スペースと、行末に改行が含まれている可能性があります。次に実行します:
for /f "tokens=4 delims=." %%F in (C:\ipdigits.txt) do echo %%F >c:\lastdig.txt
これにより、最後の数字だけが含まれているファイルが取得されますが、余分な文字も含まれているようです..その時点で、実行しようとすると:
for /f "delims=" %%f in (c:\lastdig.txt) DO Set count=%%f
echo %count%
(
set /a %count%-=1
echo %count%
)
echo %count%> C:\decdigit.txt
私が推測しているため、ファイルから6や空白文字などをロードしているため、失敗します。その時点で、数値だけではないため、「カウント」変数を減らすことができません..最初に読み込まれた数字だけを返します..または、試したことに応じて、「エコーオフ」またはその他のさまざまなものが返されます..
私が探しているのは、数値をロードしてデクリメントするのに十分なコードか、または私が使用しているすべての手順を実行せずに IP アドレスを抽出して変更するより良い方法を考えることができるかのいずれかです..それは次のように機能しますまあ..私は上記のコードのどれにもあまり精通していないので、そこにある他の回答から単にそれを盗んだだけです..だから、単純なものが欠けているだけかもしれません。