batch-file - 如何在 Windows 上创建批处理脚本以从 config.json 查找字符串并将其替换为多个缩小文件
问题描述
这是我第一次创建批处理脚本文件。我的问题可以重复,但我没有找到任何满足我要求的问题或解决方案。
我需要在 Windows 上创建一个批处理脚本文件,以从 config.json 文件值更改 min.js 多个文件和一个 index.html 文件中的 URL。
例如,我有一个 JSON 文件:
{
"APIUrl": "http:\\service.test.com",
"BaseUrl": "http:\\www.test.com"
}
现在,我需要用 APIUrl 更改“http:\service2.test.com”,用 BaseURL 更改“http:\www.test2.com”。
我找到了许多解决方案来查找和替换批处理文件的脚本。但是当我运行批处理文件时,它会从 min.js 中删除整个脚本而不替换 URL 字符串。
也许脚本逻辑正在检查结束行,并且 min.js 文件脚本总是写在一行中,因此替换删除整个脚本的文本,这只是我的想法,因为脚本中编写了结束行脚本。
我用谷歌搜索并从 StackOverflow 中找到下面的代码并将其粘贴到 batchscript.bat,但在运行 batchscript.bat 时,它正在删除整个脚本,只留下最后一行注释“//# sourceMappingURL=app.min.map”文件。这就是我不发布此代码的原因。
@echo off
setlocal EnableExtensions DisableDelayedExpansion
set "search=<http://server/application/>0"
set "replace=<http://someurl.test.com>"
set "textFile=*.*.js"
set "rootDir=./js"
for /R "%rootDir%" %%j in ("%textFile%") do (
for /f "delims=" %%i in ('type "%%~j" ^& break ^> "%%~j"') do (
set "line=%%i"
setlocal EnableDelayedExpansion
set "line=!line:%search%=%replace%!"
>>"%%~j" echo(!line!
endlocal
)
)
endlocal
pause
要执行此操作,您可以获取任何“.min.js”文件并从该文件中查找并替换文本。
解决方案
如果文件名是 test.json 那么我们可以执行以下操作。
cat test.json | jq '.APIUrl="test123"'
推荐阅读
- php - 如何使用 preg_match php 从 Web 内容中提取版本号
- c++ - bison/flex:计算器将双精度值解释为整数,所以我添加了 #define YYSTYPE 双精度,但出现多个编译错误
- flask - 谷歌云平台的504网关超时,但只是有时
- python - 用于删除列表的 Python 代码不起作用
- javascript - RxJS 对象仍然可以在内存中看到吗?
- python - 在 django 中阻止不需要的 url
- oracle - 在 UPDATE 触发器之后 - NEW 和 OLD 列别名
- java - 使用对象列表调用 oracle 存储过程
- file - Ionic 4 文件插件从 assets 文件夹复制到默认目录
- php - 使用 php 通过 API 集成发送 SMS