从批处理脚本替换文本文件中的行
Posted
技术标签:
【中文标题】从批处理脚本替换文本文件中的行【英文标题】:Replace line in textfile from a Batch script 【发布时间】:2020-04-05 15:41:18 【问题描述】:所以我有一个批处理脚本,它可以远程登录到交换机并在其上运行一些命令。 我每次都需要在文本文件中更改一行。这是IP地址的第5行。我该怎么做?
@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
这是主要的批处理脚本,我需要替换 COMMANDS.txt 是
ITAC
enable
ITAC
copy running-config tftp:
10.51.11.75
我需要替换主批处理脚本中的ip地址
【问题讨论】:
用什么替换? 在主脚本中带有 NetworkIP 变量 IP 地址每次都会改变,所以我必须每次都更换它(学校网络) 【参考方案1】:您不能用批处理替换文件中的某些内容。您必须重新创建整个文件。
首先删除最后一行。这很简单,因为它是唯一包含点的行:
find /v "." commands.txt > commands.tmp
然后将新行添加到新文件中:
>commands.tmp echo %NetworkIP%
并将其重命名为原始名称:
move /y commands.tmp commands.txt
【讨论】:
以上是关于从批处理脚本替换文本文件中的行的主要内容,如果未能解决你的问题,请参考以下文章