如何在Windows上创建批处理脚本以查找并将config.json中的字符串替换为多个缩小文件

时间:2019-03-14 09:23:05

标签: batch-file

这是我第一次创建批处理脚本文件。我的问题可以重复,但是没有找到满足我要求的问题或解决方案。

我需要在Windows上创建一个批处理脚本文件,以便从config.json文件值中更改min.js中的URL多​​个文件和一个index.html文件。

例如,我有一个JSON文件:

{
   "APIUrl": "http:\\service.test.com",   
   "BaseUrl": "http:\\www.test.com"
}

现在,我需要使用API​​Url更改“ http:\ service2.test.com”,并使用BaseURL更改“ http:\ www.test2.com”。

我找到了许多解决方案来查找和替换批处理文件的脚本。但是,当我运行批处理文件时,它是从min.js中删除整个脚本,而不替换URL字符串。

也许脚本逻辑正在检查结束行,而min.js文件脚本始终写在一行中,所以替换文本以删除整个脚本,这只是我的想法,因为结束行脚本是在脚本中编写的。

我在Google上搜索,然后从StackOverflow中找到以下代码,并将其粘贴到batchscript.bat,但是在运行batchscript.bat时,它正在删除整个脚本,并在最后一行注释了“ //#sourceMappingURL = app.min”。地图”。这就是为什么我不发布此代码。

@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”文件,然后查找并替换该文件中的文本。

1 个答案:

答案 0 :(得分:-1)

如果文件名为test.json,则可以执行以下操作。

cat test.json | jq '.APIUrl="test123"'