Moa*_*ini 168 windows command-line batch-file
我正在寻找某种方式来运行一个批处理文件 (.bat),而没有任何对用户可见的内容(没有窗口,没有任务栏名称,等等)。
我不想使用某些程序来做到这一点,我正在寻找更清洁的东西。我找到了一个使用 VBScript的解决方案,但我也不喜欢使用 VBS。
har*_*ymc 143
解决方案1:
将这一行文本另存为文件invisible.vbs:
CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False
Run Code Online (Sandbox Code Playgroud)
要不可见地运行任何程序或批处理文件,请像这样使用它:
wscript.exe "C:\Wherever\invisible.vbs" "C:\Some Other Place\MyBatchFile.bat"
Run Code Online (Sandbox Code Playgroud)
为了也能够传递/中继参数列表,只使用两个双引号
wscript.exe "C:\Wherever\invisible.vbs" "C:\Some Other Place\MyBatchFile.bat"
Run Code Online (Sandbox Code Playgroud)
例子: Invisible.vbs "Kill.vbs ME.exe"
解决方案2:
使用命令行工具静默启动进程:Quiet、hidecon或hideexec。
小智 32
隐藏批处理文件或命令文件或任何文件.... 使用 Windows XP 内置IExpress.exe实用程序从批处理文件中构建一个 .EXE。使用时,请IExpress确保选中运行隐藏选项并选中所有关于不显示任何内容的框。创建 .exe 后,将其放在您选择的任何运行命令文件夹中,您将永远不会看到它出现。
Joh*_*n T 12
通过 at 作业运行脚本而不使其具有交互性:
at 11:00 script.bat
Run Code Online (Sandbox Code Playgroud)
另一种解决方案,如果您不介意安装 Python 之类的东西,您可以简单地创建一个脚本并运行它pythonw(用于 GUI 操作的链接版本)。由于您没有使用任何图形 API,因此该窗口不会显示。只需调用os.system(),它将模拟批处理脚本,因为它与在命令行中键入字符串相同。
例子:
import os
os.system("tasklist > C:\tasks.txt")
os.system("ipconfig /all > C:\netinfo.log")
Run Code Online (Sandbox Code Playgroud)
Bij*_*N-R 12
我不喜欢 VBScript 解决方案。
下载nircmd.exe并将其复制到您的%systemroot%\system32文件夹,然后将此命令添加到批处理的第一行:
nircmd.exe win hide ititle "cmd.exe"
Run Code Online (Sandbox Code Playgroud)
或者首先使用title命令自定义批处理标题以避免隐藏所有cmd窗口,如下所示:
title MyBatch
nircmd.exe win hide ititle "MyBatch"
Run Code Online (Sandbox Code Playgroud)
小智 11
如果您的批处理文件可以放入一行和这么多字符,那么只需通过右键单击放在随机目录中的文件夹来使用快捷方式,然后跳过向导的其余部分,最后右键单击刚刚创建的快捷方式,然后单击属性并在目标下,输入您通常会放在 bat 文件中的内容。和鲍勃你的叔叔!
优点:
No Command Window
Ability to use an icon
Same Functionality of bat file
Run Code Online (Sandbox Code Playgroud)
缺点:
Limited to one line, so many characters
Run Code Online (Sandbox Code Playgroud)
您可以轻松地将其最小化。
start /MIN batch.cmd
Run Code Online (Sandbox Code Playgroud)
您还可以创建一个AutoHotkey脚本:
#NoTrayIcon ; To prevent momentary icon pop-up
run whatever.bat arg1 arg2,,hide
Run Code Online (Sandbox Code Playgroud)
使用Windows7,您可以使用“计划任务”控制面板来安排批处理文件以指定的权限在后台隐形运行,甚至可以作为“系统”帐户运行。请看下面的截图:
此外,虽然没有那么多功能,但您也可以使用“AT.exe”命令从命令行创建一个不可见的批处理脚本任务,而不使用“/interactive”选项。
优秀的Bat To Exe 转换器会将您的.bat或.cmd文件转换为.exe文件。
它有一个简单的用户界面。您可以选择不通过选择有一个控制台窗口Exe Format的 XX Bit | Windows (Invisible)选项。此外,它还允许您分配图标、设置密码和其他几个选项。
C/C++ 中的另一种方法是使用带有 CREATE_NO_WINDOW 标志的 CreateProcess 函数。它具有许多此处未显示的额外功能。这只是替换 system() 或 _spawn() 系列所需的最低限度。
STARTUPINFO si;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
PROCESS_INFORMATION pi;
ZeroMemory( &pi, sizeof(pi) );
// Spawn creates a cmd.exe window. CreateProcess doesn't.
//if ( _spawnl( _P_WAIT, szFileNameBAT, szFileNameBAT, NULL ) ) {
if ( !CreateProcess( szFileNameBAT, szFileNameBAT, NULL, NULL, false,
CREATE_NO_WINDOW, NULL, NULL, &si, &pi ) ) {
MyErrorFunc( "CreateProcess( \"%s\" ): %d", szFileNameBAT, GetLastError() );
goto MyErrorHandling;
}
WaitForSingleObject( pi.hProcess, INFINITE );
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
639257 次 |
| 最近记录: |