Как сохранить введенные переменные в исходный пакетный файл после того, как я ввел его в командной строке? - PullRequest
1 голос
/ 15 апреля 2019

Я хотел бы сохранить свои данные для% x% в командном файле, как только я наберу его в командной строке. Пожалуйста, смотрите ниже.

@ECHO OFF
TITLE Access to OST Documents for this project
ECHO Please enter the name of the OST Documents folder you would like to acces. (Spelling Sensitive)
set /p x= "P:\OST Documents\"
if not exist "P:\OST Documents\%x%" goto :try_again 
if exist "P:\OST Documents\%x%" Goto :Continue

:Try_again
Echo Location not found, please try again.
set /p x= "P:\OST Documents\"

:Continue
TITLE Access to OST Documents for this project

:choice
set /P c=Are you sure you want to continue[Y/N]?
if /I "%c%" EQU "Y" goto :OST_Documents_File
if /I "%c%" EQU "N" goto :end
goto :choice

:OST_Documents_File
Start "" "P:\OST Documents\%x%"
End

:end
Fail
End

1 Ответ

0 голосов
/ 15 апреля 2019
@echo off
call :getvar
if not "%x%" == "" goto :continue
REM var not set; ask user:
REM insert your input code and verification here
REM write it to the end of this batch:
echo set "x=%x%">>"~f0"
:continue
REM rest of your code
REM the following line should be the very last line in this batch (but WITH a CRLF):
:getvar

call :getvar пытается установить переменную (возвращается пустой при первом запуске)
Строка if проверяет, если пусто (тогда пользователь получает запрос)
echo set "x=%x%">>"~f0" здесь ключ. Он добавляет set command к пакетному файлу (%~f0 - полное имя пакетного файла), поэтому
call :getvar возвращается с ранее установленной переменной %x%

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...