华南小马哥 发表于 2021-1-25 14:01

如何用批处理,将命令行查询结果插入到某一文本某一字符后面

我想使用'wmic CPU get ProcessorID'命令查询cpu序列号,然后将查询得到的序列号结果插入到test.txt中的第5行‘CPU ID= ’字符后面,用一个批处理命令怎么操作,求指教!

cwl 发表于 2021-1-25 14:09

有点复杂,感觉可以写个程序左一下拼接,中间插入好像微软本身并不支持

WolfAvenue 发表于 2021-1-25 14:50

for 循环 txt内容,然后重新写入,是可以的,不知道有其他方法没

华南小马哥 发表于 2021-1-25 14:53

WolfAvenue 发表于 2021-1-25 14:50
for 循环 txt内容,然后重新写入,是可以的,不知道有其他方法没

能否提供完整的批处理代码,小白啊,感谢!

摸鱼的虾 发表于 2021-1-25 15:27

test.txt前面五行发出来看看

fanvalen 发表于 2021-1-25 15:38

插入不好实现,还是用查找替换的方法吧,但是我也不会写bat 哈哈哈 我就只是提供一个思路

华南小马哥 发表于 2021-1-25 15:46

摸鱼的虾 发表于 2021-1-25 15:27
test.txt前面五行发出来看看

CPU
load
ID
trail
CPU ID =
这是文本的前五行,想在CPU ID =后面添加

平淡最真 发表于 2021-1-25 16:49

华南小马哥 发表于 2021-1-25 15:46
CPU
load
ID


文本有第六行吗?晚上有空可以试一下

WolfAvenue 发表于 2021-1-25 17:11

CPU ID = 这个字符串在第五行那个位置,最后吗?

WolfAvenue 发表于 2021-1-25 17:41

多了一个空行,我也不知道哪里出问题了{:301_971:}@echo off
setlocal enabledelayedexpansion
set sn=""
set snline=0
for /f "delims=," %%a in ('wmic CPU get ProcessorID') do (
set /a snline=!snline!+1
if !snline! equ 2 (
set matchLine=5
set curLine=0


for /f "delims=," %%i in ('type test.txt') do (
set /a curLine=!curLine!+1
set str=%%i

if !curLine! equ !matchLine! (
   set str=!str!%%a

)

if !curLine! equ 1 (
    echo !str! > test.txt
) else (
echo !str! >> test.txt
)

)


)

)

pause
页: [1] 2 3
查看完整版本: 如何用批处理,将命令行查询结果插入到某一文本某一字符后面