例如我可以直接调用myscript.cmd
或者在其他脚本中我可以为myscript添加一行。
原因是如果一个脚本在它自己运行时它会在它停止执行时消失,所以我看不到结果,所以最后我必须添加@pause
但是当我运行它时从另一个shell中,这会引起烦恼,因为控制台窗口不会以这种方式退出。
所以我寻找某种'if'条件来解决这个问题。
答案 0 :(得分:1)
除非你创建一个像Stu建议的环境变量,否则你不会找到任何你想要的东西。您将需要编写一个以编程方式查询父进程的小程序,并返回脚本可以检查的值。如果您从Start->运行,则运行您的父级将是explorer.exe。否则它将是cmd.exe或其他一些exe。
可以找到查找父进程的示例代码here。
答案 1 :(得分:1)
要在双击(或删除文件)时暂停脚本,但在从控制台调用时终止常规方法:
@echo off
echo Hello World!
:: ...your ScriptCode...
(((echo.%CMDCMDLINE%)|find /I "%~0")>NUL)&&pause
答案 2 :(得分:0)
为什么不自己设置?
SET RUNNINGFROMOTHERSHELL=YES
CALL MYSCRIPT.CMD
SET RUNNINGFROMOTHERSHELL=
在MyScript.Cmd中:
IF "%RUNNINGFROMOTHERSHELL%"=="" GOTO NOPAUSE
PAUSE
:NOPAUSE