• Обновление • Существует другой способ сделать это , записав переменных в bat it self и используйте другую биту, чтобы прочитать эту первую биту с переменными .
1), используя reg add / reg query (setx)
Для этого вы можете использовать setx
, но значение из setx
будет доступно только после следующего instance / session в то время, когда это установлено, с помощью cmd / powershell
Кроме того, setx
можно установить с помощью reg add
:
По reg add: `reg add HKCU \ Environment / v _amount / d " %ount% " / f
По команде setx: setx _amount"% amount%"
Для чтения значения перед следующим экземпляр / сеанс : для / f "токены = 3 delims = ^" %% i in ('запрос reg HKCU\ Environment ^ | findstr / i / c: "_ amount" ') действительно установить _amount = %% i
Так, в другом * экземпляре / сеансе переменная находится вСистема, просто сделайте, если нужно: установить сумму =% _ сумма%
@echo off
set /p amount="Amount:"
setx _amount "%amount%"
set a=0
set /p text="Text:"
:loop
set /a a+=1
start myecho.bat
:: add this lines lines if ..( ...) in file "myecho.bat" ::
if "./%_amount%/." equ ".//." (
for /f "tokens=3 delims=^ " %%i in ('reg query HKCU\Environment ^| findstr /i /c:"_amount"') do set _amount=%%i
) else (
set amount=%_amount%
)
if %a% LSS %amount% echo/ do some thing
exit
Когда вам больше не нужна переменная, вы можете удалить / удалить ключ setx / reg с помощью:
reg delete HKCU\Environment /v _amount /f 2>nul >nul
2) с помощью файла TXT для сохранения и чтения ...
Запись значения1-й бит в% temp% \ file.txt и чтение 2-й бит:
@echo off
set /p amount="Amount:"
echo/%amount%>"%temp%\amount_value_in.txt"
set a=0
set /p text="Text:"
:loop
set /a a+=1
start myecho.bat
:: add this lines lines if ..( ...) in file "myecho.bat" ::
set /p amount=<"%temp%\amount_value_in.txt"
if %a% LSS %amount% echo/ do some thing
exit
3) с помощью переменной send для прямого запуска start.bat% amount% ...
@echo off
set /p amount="Amount:"
echo/%amount%>"%temp%\amount_value_in.txt"
set a=0
set /p text="Text:"
:loop
set /a a+=1
start myecho.bat %amount%
:: add this lines lines if ..( ...) in file "myecho.bat" ::
set amount=%1
if %a% LSS %amount% echo/ do some thing
exit
Obs.:
1- Извините, мой ограниченный Английский
2- Вы можете заменить старт по вызов