尊敬的StackOverFlow會員,從另一個批處理文件更新批處理文件
請幫助我處理這個批處理文件。我想使用從「SET/P INPUT =%=%」給出的答案,並讓它永久更新另一個批處理文件。
這是一個運行於用戶
@echo off
cls
echo.
echo .................................................................
echo ..... Specify what the name of the Store is, this will send .....
echo ............... alerts to [email protected] ..............
echo .................................................................
echo.
pause
:option
cls
color 5E
echo.
echo "............ Press 1 to specify what the store name is......"
echo "............ Press 2 to exit the program ................."
echo.
SET /P M=Type from the menu above 1 or 2 then press ENTER:
IF %M%==1 GOTO SEND
IF %M%==2 GOTO EOF
:SEND
cls
color 0A
set INPUT=
set /P INPUT=Enter Store Name: %=%
if "%INPUT%"=="" goto input
echo "You said that the store name is: %INPUT%"
:: Have the user confirm his/her choice
SET /P ANSWER=Is the name correct (Y/N)?
echo You chose: %ANSWER%
if /i {%ANSWER%}=={y} (goto :yes)
if /i {%ANSWER%}=={yes} (goto :yes)
goto :no
:yes
echo You pressed YES!... The name is updating
goto name
:no
echo You pressed NO!... The program will exit
pause
cls
goto eof
:name
::set /A store=%INPUT%
echo %INPUT% >> notify_support.bat
::Terminate the program
:EOF
得到答案正如你可以看到我很努力指定我應該「回聲%的輸入%>> notify_support.bat」第一批文件。這是第二個批處理文件
@echo off
call senditquiet -s smtp.gmail.com -port 587 -u [email protected] -protocol ssl -p access -f [email protected] -t [email protected] -subject "Store ABC" -body "Hello there, There is an issue logged at the store.<br>Best regards."
當第一個批處理文件運行時,它會更新第二個採取了代碼,但只是轉儲它在文件的結尾。
我需要INPUT ECHOed來替換第二個批處理文件中的「Store ABC」。
請協助,我很生疏的批處理文件。
嗨@GolezTrol,我應該然後使第二個批處理文件爲空,並有第一個批處理文件解析它。就好像第一個文件正在爲我寫第二個文件,使用>解決方案? –
如果您選擇實際解析批處理文件,則必須生成第二個文件,之後將重命名該文件,否則此時您正在覆蓋正在閱讀的文件。 (不確定,順便說一下,也許文件在運行'for/F'時立即被讀取)。無論如何,它很難實現,依賴於第二個文件的存在*和*依賴於'存儲ABC標記,這意味着您不能重複該過程。 – GolezTrol
所以我建議不要解析它。你可以覆蓋它。但爲了做到這一點,第一批文件必須確切地知道進入第二個文件的內容。這樣做的好處是實現起來更容易,甚至可以第一次生成第二個文件;它不一定存在。第一個文件需要包含第二個批處理文件的'模板'可能是一個缺點,但是由您決定是否可以接受。 – GolezTrol