У меня есть один скрипт и один файл конфигурации.в файле конфигурации в основном есть
SNFold_1="ORKI App 1.0.0.0219"
SNFile_1="8520010008_852001.T3A.pkg"
SNPrm_1="8520010008_852001.P3A.txt"
SNXML_1="852001.xml"
SNFold_2="iConnect REST Server 1.8.0.0017"
SNFile_2="8296831817_829683.P3A.pkg"
SNPrm_2="8296831817_829683.P3A.txt"
SNXML_2="829683.xml"
В основном файле сценария у меня есть код ниже:
@echo off
set SNFold_1=%SNFold_1:"=%
set SNFile_1=%SNFile_1:"=%
set SNPrm_1=%SNPrm_1:"=%
set SNXML_1=%SNXML_1:"=%
set SNFold_2=%SNFold_2:"=%
set SNFile_2=%SNFile_2:"=%
set SNPrm_2=%SNPrm_2:"=%
set SNXML_2=%SNXML_2:"=%
call:signFunc "%SNFold_1%" %SNFile_1% %SNPrm_1% %SNXML_1%
call:signFunc "%SNFold_2%" %SNFile_2% %SNPrm_2% %SNXML_2%
call:end
EXIT /B %ERRORLEVEL%
:signFunc - here starts Sign function
::::::::::::::::::::::::
:: prepare sign xml file
::::::::::::::::::::::::
cd %NEW_PACKAGE_BASE_PATH%\%NEW_PACKAGE_NAME%\%New_PACK_PTN%\Sign\xml
copy %NEW_PACKAGE_BASE_PATH%\%NEW_PACKAGE_NAME%\%New_PACK_PTN%\Sign\Temp\sample.xml .
Set "search=sign folder"
Set "replace=%~1"
Set "textfile=sample.xml"
Set "newfile=indesnew.txt"
(
For /F "Tokens=1* Delims=:" %%A In ('FindStr /N "^" "%textfile%"') Do (
If "%%B"=="" (
Echo=
) Else (
Set "line=%%B"
SetLocal EnableDelayedExpansion
Set "line=!line:%search%=%replace%!"
Echo=!line!
EndLocal
)
)
)>"%newfile%"
Del "%textfile%"
Ren "%newfile%" "%textfile%"
Set "search=sign binary file"
Set "replace=%~2"
Set "textfile=sample.xml"
Set "newfile=indesnew.txt"
(
For /F "Tokens=1* Delims=:" %%A In ('FindStr /N "^" "%textfile%"') Do (
If "%%B"=="" (
Echo=
) Else (
Set "line=%%B"
SetLocal EnableDelayedExpansion
Set "line=!line:%search%=%replace%!"
Echo=!line!
EndLocal
)
)
)>"%newfile%"
Del "%textfile%"
Ren "%newfile%" "%textfile%"
Set "search=sign parameter"
Set "replace=%~3"
Set "textfile=sample.xml"
Set "newfile=indesnew.txt"
(
For /F "Tokens=1* Delims=:" %%A In ('FindStr /N "^" "%textfile%"') Do (
If "%%B"=="" (
Echo=
) Else (
Set "line=%%B"
SetLocal EnableDelayedExpansion
Set "line=!line:%search%=%replace%!"
Echo=!line!
EndLocal
)
)
)>"%newfile%"
Del "%textfile%"
Ren "%newfile%" "%textfile%"
rename sample.xml %~4
cd "%SignKit_Path%"
call antCmdLine.bat %NEW_PACKAGE_BASE_PATH%\%NEW_PACKAGE_NAME%\%New_PACK_PTN%\Sign\xml\%~4 mockup
EXIT /B 0
:end
move "%SignKit_Path%\sign_file.log" "%NEW_PACKAGE_BASE_PATH%\%NEW_PACKAGE_NAME%\%New_PACK_PTN%\Sign\Temp"
@RD /S /Q "%NEW_PACKAGE_BASE_PATH%\%NEW_PACKAGE_NAME%\%New_PACK_PTN%\Sign\xml"
Теперь проблема была в этом.Я запустил его на своем компьютере, он работал гладко с
- call: signFunc "% SNFold_1%"% SNFile_1%% SNPrm_1%% SNXML_1%
затем второй
- call: signFunc "% SNFold_2%"% SNFile_2%% SNPrm_2%% SNXML_2%
Но когда он запустился на моем коллегном компьютере, он столкнулся с этой проблемой
- call: signFunc "% SNFold_1%"% SNFile_1%% SNPrm_1%% SNXML_1%
работает нормально, но сразу после этого я получил паузу, чтобы спросить Нажмите любую клавишу для продолжения... После нажатия любой клавиши второй цикл работал как @ echo на и даже зависал ...
И мой коллега, и я используем Windows 10
Есть ли что-то другое на компьютере моего коллеги, потому что это произошло?
На основании вашего ввода я просто изменил две вещи и сделал так, чтобы он работал легко
- 1) Изменилформат файла конфигурации.В этом файле.cfg я перечисляю параметры следующим образом:
- "Приложение ORKI 1.0.0.0219" 8295650401_CAVDEV.P3A.pkg 8295650401_CAVDEV.P3A.jsat 829565.xml
- "Сервер iConnect REST 1.8.0,0017 "8296831817_829683.P3A.pkg 8296831817_829683.P3A.txt 829683.xml
2) Затем в главном файле сценария
for / f" tokens = 1-4 delims =, 1-4 delims =,"%% A in (file.cfg) делает вызов: signFunc %% A %% B %% C %% D
: signFunc - здесь запускается функция подписи
И все работает нормально.