0

StackOverFlowメンバーの皆様、

このバッチファイルを手伝ってください。「SET/PINPUT =%=%」の回答を使用して、別のバッチファイルを永続的に更新してもらいたいと思います。

これは、ユーザーから回答を得るために実行される最初のバッチファイルです。

@echo off
cls
echo.
echo .................................................................
echo ..... Specify what the name of the Store is, this will send .....
echo ............... alerts to abd@abc.co.za ..............
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

ご覧のとおり、「echo%INPUT%>>notify_support.bat」の場所を指定するのに苦労しています。これは、2番目のバッチファイルから取得したコードです

@echo off
call senditquiet -s smtp.gmail.com -port 587 -u rsupp0rt@gmail.com -protocol ssl -p access -f rsupp0rt@gmail.com -t 888@gmail.com -subject "Store ABC" -body "Hello there, There is an issue logged at the store.<br>Best regards." 

最初のバッチファイルが実行されると、2番目のバッチファイルが更新されますが、ファイルの最後にダンプされます。

2番目のバッチファイルの「StoreABC」を置き換えるには、INPUTECHOedが必要です。

助けてください、私はバッチファイルでかなり錆びています。

4

1 に答える 1

3
echo %INPUT% >> notify_support.bat

その行には>>、「ファイルの最後にダンプする」という意味が含まれています。シングル>を使用して、既存のファイルの内容を上書きできます。そうすれば、ファイル全体を再生成できます(とにかく2行だけです)。

別の解決策は、既存のファイルを実際に解析して、そのテキストを置き換えることです。を使用してfor /F ...これを行うことができます。これにより、ファイルの行をトラバースできます。次に、既存のファイルの(変更された)内容に基づいて、新しいファイルを生成できます。欠点は、このファイル解析方法が、各行がフィールドと区切り文字を含む同じ形式のデータファイル(CSVファイルなど)に特に適していることです。バッチファイルやプログラムソースファイルなどの「複雑な」ファイルの解析にはあまり適していません。

于 2012-12-04T15:32:46.587 に答える