String 从批处理脚本替换文本文件中的行

String 从批处理脚本替换文本文件中的行,string,batch-file,replace,split,String,Batch File,Replace,Split,因此,我有一个批处理脚本,它对交换机执行telnet操作,并在交换机上运行一些命令。 我需要在文本文件中每次更改一行。这是IP地址的第五行。我怎么做 @echo off set IP="" :start set /p IP="Enter IP Adress:" echo : IP is set to %IP% cd "C:\Program Files\PuTTY\" echo : Trying to connect to %IP% plink.exe -tel

因此,我有一个批处理脚本,它对交换机执行telnet操作,并在交换机上运行一些命令。
我需要在文本文件中每次更改一行。这是IP地址的第五行。我怎么做

@echo off
set IP=""
:start

set /p IP="Enter IP Adress:"

    echo : IP is set to %IP%
    cd "C:\Program Files\PuTTY\"
    echo : Trying to connect to %IP%
    plink.exe -telnet %IP% < C:\Users\w0w40\Desktop\5ahitn\shruns\commands.txt

for /f "delims=[] tokens=2" %%a in ('ping -4 -n 1 %ComputerName% ^| findstr [') do set NetworkIP=%%a

pause
goto start

我需要替换主批处理脚本中的ip地址

不能用批处理替换文件中的内容。您必须重新创建整个文件

首先删除最后一行。这很简单,因为这是唯一一条包含点的线:

find /v "." commands.txt > commands.tmp
然后将新行添加到新文件:

>commands.tmp echo %NetworkIP%
并将其重命名为原始名称:

move /y commands.tmp commands.txt

替换为什么?使用主脚本中的NetworkIP变量,IP地址每次都会更改,因此我必须每次都替换它(schoolnetwork)
move /y commands.tmp commands.txt