选项1

选项1

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.exehh.exe但都没有改变 %ERRORLEVEL%。它是一个环境变量,表示最后一个可执行文件是否成功。工作原理类似于 unix 返回代码。

下面的 noop 命令将把 %ERRORLEVEL% 设置为零:

cd %CD%

只需将工作目录更改为当前目录即可。

相关内容