处理将修改package.json文件的批处理脚本。
基本上,我需要替换每个json文件的"test"部分。
这是一个示例代码片段:
"scripts": {
"test": "any text can go here"
},我想要做的是将整个"test“行替换为:
"test": "jest --coverage"我只是想出了一个替换字符串(不带空格)的脚本:
SETLOCAL ENABLEDELAYEDEXPANSION
for /f "delims=" %%a in (temp.txt) do (
SET s=%%a
SET s=!s:test=newText!
echo !s!>>yourtempfilename.txt
)
pause有没有人可以帮我修改一下,这样:-它可以容纳一个带空格的字符串-考虑到"any text can go here"值总是不同的,它可以用"test"替换整行
但请注意,我不能使用任何其他程序/命令,如sed或fnr.bat等。
发布于 2019-12-10 19:20:19
正如Compo已经评论的那样,batch不是适合这项工作的工具,但是当你不能使用任何其他工具(如PowerShell)时:
@echo off
setlocal disabledelayedexpansion
set "newtext=some other text here"
(for /f "tokens=1* delims=]" %%a in ('find /n /v "" temp.txt') do (
echo %%b|findstr /rc:"\ *\"test\":\ \".*\"" >nul && (
for /f "delims=:" %%c in ("%%b") do echo %%c: "%newtext%"
) || echo/%%b
))>yourtempfilename.txt 2>nul它保留了格式和空行,但对某些有害字符有一些问题(这就是2>nul的原因;尽管输出是可以的)
https://stackoverflow.com/questions/59264737
复制相似问题