我需要通过批处理文件中传递的变量来更改TXT文件的内容。
如下:
[00010001]
Name = 192.168.1.141
Port = 2046
[GER]
Port=1
Speed=19200
SAM=2
我需要更改前3行
批处理文件
@echo off
setlocal=enabledelayedexpansion
set "nfilial="
set /p "nfilial=Numero do Filial (4 Digitos):"
set "pdvnunber="
set "empresatef="
set /p "empresatef=Numero Empresa TEF (4 Digitos):"
set "iptef="
set /p "iptef=IP Servidor TEF:"
set "portatef="
set /p "portatef=Numero Porta TEF:"
rename scope.ini scope.tmp
for /f %%a in (scope.tmp) do (
set foo=%%a
if "!foo:[ ]=!" neq "!foo!" set "foo=[%empresatef%%nfilial%]"
echo !foo! >> scope.ini)
del scope.tmp
令人怀疑的是,不知道如何使用相同的IF来消耗剩余的参数,即使只有第一步参数文件已被全部损坏。
如下:
[00010001]
Name
Port
[General]
[GER]
Port=1
Speed=19200
SAM=2
同样,交换参数没有条件,第二行和第三行也会改变。
谢谢
答案 0 :(得分:0)
@echo off
setlocal
set "nfilial="
set /p "nfilial=Numero do Filial (4 Digitos):"
set "pdvnunber="
set "empresatef="
set /p "empresatef=Numero Empresa TEF (4 Digitos):"
set "iptef="
set /p "iptef=IP Servidor TEF:"
set "portatef="
set /p "portatef=Numero Porta TEF:"
>scope.ini.new (
echo [%empresatef%%nfilial%]
echo Name = %iptef%
echo Port = %portatef%
for /f "skip=3 delims=" %%A in (scope.ini) do echo %%A
)
move /y scope.ini.new scop.ini >nul
如果文件没有任何标签,且文件大于< 64K行,那么FOR语句可以替换为
more +3 scope.ini
它会更快。
答案 1 :(得分:0)
会限制下面命令的字符数吗?我想只接受数字字符,只接受2个字符。
set "nfilial="
set /p "nfilial=Numero do Filial (2 Digitos):"
for /f "delims=1234567890" %%a in ("%nfilial%") do goto :nfilial