我的代码遇到问题。如果我运行该文件并按照提示输入工作站名称然后选择站点1,它会继续打开cmd窗口以执行psexec命令,它不会执行" IF NOT EXIST"对于网站1,但对于其他网站,它回来很好。如果没有文件存在,它将输出到提示符,如果是,则继续输出psexec。知道我做错了什么吗?谢谢。
:MAN
SET /P S=Please enter a workstation name or IP:
ECHO.
ECHO 1 - Site 1
ECHO 2 - Site 2
ECHO 3 - Site 3
ECHO 4 - Site 4
SET /P D=Select which Site you want to deploy from:
IF %D%==1 SET D="\\site1\Operations\Sofware\Packages\file.msi"
IF %D%==2 SET D="\\site2\Operations\Sofware\Packages\file.msi"
IF %D%==3 SET D="\\site3\Operations\Sofware\Packages\file.msi"
IF %D%==4 SET D="\\site4\Operations\Sofware\Packages\file.msi"
IF NOT EXIST %D% GOTO MSG
START CMD /K PsExec.exe @%S% -s -h cmd /c msiexec.exe /i "%D%" /qn
PAUSE
GOTO EOF
:MSG
CALL :color 1a "ERROR: MSI PACKAGE DOES NOT EXIST"
答案 0 :(得分:0)
注意做的可能性:
goto label%D%
您几乎也可以这样做:
set D=\\10.%D%.2.1\Operations\Sofware\Packages\quest.msi
而不是4个IF语句。
答案 1 :(得分:0)
这是我的工作代码,PsExec存在问题,并且没有采用%s%变量,而是将用户输入输出到文本文件并从该文件中读取Psexec。我还编辑了大家的建议。谢谢大家。
:MAN
@ECHO OFF
SET /P S=Please enter a workstation name or IP:
ECHO %S% >> man.txt
ECHO.
ECHO 1 - Site 1
ECHO 2 - Site 2
ECHO 3 - Site 3
ECHO 4 - Site 4
SET /P D=Select which Branch you want to deploy from:
IF %D%==1 SET "R=\\site1\Operations\Sofware\Packages\file.msi"
IF %D%==2 SET "R=\\site2\Operations\Sofware\Packages\file.msi"
IF %D%==3 SET "R=\\site3\Operations\Sofware\Packages\file.msi"
IF %D%==4 SET "R=\\site4\Operations\Sofware\Packages\file.msi"
IF NOT EXIST %R% GOTO MSG
START CMD /k "PsExec.exe @man.txt -s -h cmd /c msiexec.exe /i %R% /qn & DEL man.txt"
PAUSE
GOTO MENU
:MSG
CALL :color 1a "ERROR: MSI PACKAGE DOES NOT EXIST"
答案 2 :(得分:-1)
==;我会用EQU