#batch-file #replace
Вопрос:
У меня проблема в том, что моя струна перерезалась пополам.
Я хочу заменить -Dstore.ID
и Webservice.jar
двумя переменными.
Строка в другом файле:
java -Dstore.id=xxx -Dfiles.databaseDir=c:XXXToolsstm -Dquarkus.http.port=8090 -Dde.XXXX.puh.store.tiger.restclients.tigerRestClient/mp-rest/url=https://XXX.tiger.XXX.XXXX.XXX.de/web/api/v3/ -Djavax.net.ssl.trustStore=C:/XXX/Tools/stm/cacerts -Dquarkus.datasource.jdbc.url="jdbc:h2:file:c:/data/stm;AUTO_SERVER=true" -Dquarkus.datasource.receipt.jdbc.url="jdbc:h2:file:c:/data/cache;AUTO_SERVER=true" -Dgcp.useProxies=false -jar lt;webservice.jargt;
Результат примерно такой:
java -Dstore.id=998 -Dfiles.databaseDir=c:XXXXToolsstm -Dquarkus.http.port=8090 -Dde.xxx.puh.store.tiger.restclients.tigerRestClient/mp-rest/url=https://p
Скрипт:
set "search=xxx" set "111=12345" set "search1=yyy" set "cmdFile=C:XXXXToolstesttest.cmd" for /f "usebackq tokens=4" %%a in (`dir C:XXXXToolstest ^| findstr "runner"`) do set jar=%%a for /f "delims=1" %%i in ('type "%cmdFile%" ^amp; break ^gt; "%cmdFile%" ') do ( set "line=%%i" setlocal enabledelayedexpansion gt;gt;"%cmdFile%" echo(!line:%search%=1%! !line:%search1%=%jar%! endlocal )
Я что-то пропустил или я совершенно не прав?
Комментарии:
1. Как вы думаете
"delims=1"
, для чего нужен второйfor
цикл? Эта опция приводит к разделению строки на две подстроки с использованием символа1
в качестве разделителя строк и получению только первой подстроки, назначенной переменной циклаi
. Опубликованный код, к сожалению, не является минимальным, воспроизводимым примером, но я предлагаю заменить"delims="
наdelims^=^ eol^=
без использования"
для определения пустого списка разделителей и без символа конца строки, чтобы вся строка была назначена переменной циклаi
для дальнейшей обработки.2. Спасибо за совет, отлично работает!