Dan*_*son 17 windows batch-file
假设有Windows,我是否可以从批处理文件中检测它是从打开的命令提示符启动还是双击?我想在批处理结束时添加一个暂停,当且仅当它被双击时,这样窗口不会随着它可能产生的任何有用输出而消失.
有什么聪明的方法吗?我正在寻找可以依赖的解决方案来处理使用默认设置或多或少配置的计算机.
Pat*_*uff 14
我刚刚进行了快速测试并注意到以下内容,这可能对您有所帮助:
如果从命令控制台运行,此脚本将不会暂停,但如果在资源管理器中双击,则该脚本将暂停:
@echo off
setlocal enableextensions
set SCRIPT=%0
set DQUOTE="
@echo do something...
@echo %SCRIPT:~0,1% | findstr /l %DQUOTE% > NUL
if %ERRORLEVEL% EQU 0 set PAUSE_ON_CLOSE=1
:EXIT
if defined PAUSE_ON_CLOSE pause
Run Code Online (Sandbox Code Playgroud)
编辑:从资源管理器运行时也有一些奇怪的行为,我无法解释.本来,而不是
@echo %SCRIPT:~0,1% | findstr /l %DQUOTE% > NUL
if %ERRORLEVEL% EQU 0 set PAUSE_ON_CLOSE=1
Run Code Online (Sandbox Code Playgroud)
我试过只用一个if
:
if %SCRIPT:0,1% == ^" set PAUSE_ON_CLOSE=1
Run Code Online (Sandbox Code Playgroud)
从打开的命令提示符运行时,这将起作用,但是当从资源管理器运行时,它会抱怨该if
语句不正确.
归档时间: |
|
查看次数: |
4959 次 |
最近记录: |