Windows 安装中是否存在类似“noop”的 exe?我正在准备一些批处理作业和计划任务,出于一些原因,我想引用一个不执行任何操作的可执行文件 - 即启动时没有可见窗口,并立即退出。
这样的可执行文件是否存在于通常的 Windows 安装中?或者我怎样才能接近?我不想依赖 Windows 中尚未包含的任何东西。
答案1
您可以使用rundll32
:
- 没有控制台窗口
- 无副作用
- 仅 44 KB
- 无需参数
- 适用于所有最新的 Windows 版本 (XP、Vista、7),可能也适用于所有基于 NT 的系统。
答案2
在 Windows 安装中是否存在类似“noop”的 exe 文件?
这是否特别意味着一个程序只用于执行其他任何操作?是也不是。Windows 默认不包含此类程序,但允许你自行创建此类程序。
选项1
跑步记事本,输入以下几行,然后另存为C:\ret.scr
(不要忘记空白行):
a
ret
rcx
1
n ret.com
w
q
使用以下方法编译调试程序在命令提示符下(命令执行程序),命令如下:
C:\> debug < ret.scr
您现在有一个程序ret.com
(在 C:\ 中),可以在批处理文件中使用,但它不执行任何操作(嗯,除了退出,如果算数的话)。
笔记:debug
不包含在 64 位系统上。
选项 2
在 Vista 及更高版本中,.NET 框架默认包含在内,因此您也可以.exe
使用 C# 制作原生的、不执行任何操作的 Windows 程序(兼容 64 位):
跑步记事本并输入以下几行,并将其保存为C:\ret.cs
:
class ret
{
static void Main() {
}
}
使用以下方法编译执行程序在命令提示符下(命令执行程序),命令如下:
C:\> csc ret.cs /target:winexe
现在您有了另一个程序ret.exe
(位于 C:\),它可以用于批处理文件,除了返回之外什么也不做。目标选项使其成为 GUI 应用程序,因此它甚至不会打开终端窗口。
答案3
据我所知,Windows 中没有任何程序在执行时会立即退出(至少是故意的)。
然而,在 Windows Vista 及更高版本中,超时程序实用程序。Timeout.exe
将等待指定的秒数,然后退出。例如:
C:\>timeout /t 0 > nul:
设置timeout.exe
为等待 0 秒与立即退出 EXE 大致相同。
答案4
我试过了rndll32.exe
,hh.exe
但都没有改变 %ERRORLEVEL%。它是一个环境变量,表示最后一个可执行文件是否成功。工作原理类似于 unix 返回代码。
下面的 noop 命令将把 %ERRORLEVEL% 设置为零:
cd %CD%
只需将工作目录更改为当前目录即可。