也许我没有用正确的术语进行搜索,但我似乎无法在任何地方找到答案。我试图在服务因“登录失败而导致错误”错误时显示特定消息,但我不知道我需要输入批处理文件。在this article的帮助下,这就是我到目前为止所做的:
@echo off
echo This will start your MYSERVICES. If you do not wish to do this, please close this window, otherwise:
pause
for /F "tokens=3 delims=: " %%H in ('sc query "MYSERVICE1" ^| findstr " STATE"') do (
if /I "%%H" NEQ "RUNNING" (
NET START "MYSERVICE1"
)
)
for /F "tokens=3 delims=: " %%H in ('sc query "MYSERVICE2" ^| findstr " STATE"') do (
if /I "%%H" NEQ "RUNNING" (
NET START "MYSERVICE2"
)
)
@echo off
echo Your services should now be started!
@echo off
echo If any errors came up or you still cannot get into your software, be sure to give Tech Support a call at 1-800-xxx-xxxx.
@echo off
echo To close this window:
pause
它们在没有运行时启动服务很好,但我想要
行@echo off
echo现在应该启动您的服务了!
如果上一个命令最终因为“...由于登录失败”而导致1069错误错误,则返回不同的消息。有没有办法做到这一点?可能是通过查询错误?我是新手,所以我不确定我需要注意什么。
谢谢!
答案 0 :(得分:0)
SC Start myservice | findstr /i /c:"1069" && Echo Service Failed
如果找不到文本,Findstr将返回非零错误级别。 &安培;&安培;仅在prev命令返回0时执行。
从MSDos 6.22帮助文件。
│The following list shows each exit code and a brief description of its │meaning: │ │0 │ The search was completed successfully and at least one match was found. │ │1 │ The search was completed successfully, but no matches were found. │ │2 │ The search was not completed successfully. In this case, an error │ occurred during the search, and FIND cannot report whether any matches │ were found. │ │You can use the ERRORLEVEL parameter on the command line in a batch │program to process exit codes returned by FIND.
& seperates commands on a line. && executes this command only if previous command's errorlevel is 0. || (not used above) executes this command only if previous command's errorlevel is NOT 0 > output to a file >> append output to a file < input from a file | output of one command into the input of another command ^ escapes any of the above, including itself, if needed to be passed to a program " parameters with spaces must be enclosed in quotes + used with copy to concatinate files. E.G. copy file1+file2 newfile , used with copy to indicate missing parameters. This updates the files modified date. E.G. copy /b file1,, %variablename% a inbuilt or user set environmental variable !variablename! a user set environmental variable expanded at execution time, turned with SelLocal EnableDelayedExpansion command %<number> (%1) the nth command line parameter passed to a batch file. %0 is the batchfile's name. %* (%*) the entire command line. %<a letter> or %%<a letter> (%A or %%A) the variable in a for loop. Single % sign at command prompt and double % sign in a batch file.