Строка должна быть длинной, чтобы поместиться в переменную (cmd)

#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. Спасибо за совет, отлично работает!