在 Windows XP 上,我是否可以通过快捷方式运行批处理(.bat 或 .cmd)文件,而没有“黑窗”?
我安装了一个名为 Redcar 的 ruby gem,它是从命令行启动的。当它运行时,它会窃取 shell 直到它终止,所以我必须创建一个新的 shell 窗口来继续执行命令行工作。我使用的 shell 是来自 MySysGit 的 GITbash shell。
我发现了一个 Redcar.bat 文件,我想它是为了将 Redcar 作为快捷方式启动,但我不希望在启动 BAT 文件时打开额外的命令提示符窗口。
如何在没有看到提示的情况下只运行 BAT?
在 bash 中:
java -jar jarfile1.jar &
java -jar jarfile2.jar &
Run Code Online (Sandbox Code Playgroud)
&符号允许您启动第一个程序,然后在第一个程序仍在运行时执行另一个程序。
我如何在 cmd 中执行此操作?(如果相关,则为 XP)。
我在 Windows XP 的运行对话框中使用以下代码。
cmd /c "C://Program Files/Adobe/Adobe Photoshop CS4/Photoshop.exe"
Run Code Online (Sandbox Code Playgroud)
您可以替换系统上安装的任何程序的程序路径。问题是 Photoshop 启动了,但 cmd.exe 窗口仍然保留。我不想弹出 cmd.exe 文件。是否可以在不打开 cmd.exe 窗口的情况下通过 cmd 启动程序?我需要 cmd 默默地工作。顺便说一句,我需要这个程序代码。所以我需要通过 cmd 启动程序,但没有弹出 cmd.exe 窗口。
进一步评论
因为我将在程序中使用该代码。程序可以启动cmd exe。但问题是我们不知道安装了哪个版本的 Photoshop。所以它可以是 Photoshop CS4 或 Photoshop CS5。通常,当您在“运行”中键入以下代码时,无论安装哪个,您都会获得 Photoshop。
photoshop
Run Code Online (Sandbox Code Playgroud)
所以我想用这种方法启动Photoshop。程序将启动 cmd 为 Run above,但如下所示:
cmd /c photoshop
Run Code Online (Sandbox Code Playgroud)
但它不起作用。甚至出现 cmd 窗口。我想让这个过程静默运行。我们也不应该安装任何其他工具。我想要一个适用于默认 Windows 的解决方案。
我在 Windows 7 环境中安排了几个进程,主要用于备份,这些进程应该在后台运行。
然而,任务调度程序不是只是在后台安静地执行它的工作,而是弹出一个黑色的(类似控制台的)“taskeng.exe”窗口。该窗口位于所有其他窗口的前面。幸运的是,它没有窃取我的键盘焦点,但它挡住了所有东西的视线。

有没有办法避免这个窗口 - 或者至少让它出现在背景中而不窃取我的视觉焦点?
应用赏金后编辑的示例:
这是我最后一次尝试使用 WScript 内容(在名为 RunSignatured.bat 的文件中):
Set Shell = CreateObject("WScript.Shell")
Shell.Run C:\Users\danh\Bin\signatured.bat, 0, False
Run Code Online (Sandbox Code Playgroud)
signatured.bat 文件包含:
cd C:\Users\danh\bin
"C:\Program Files\Java\jre7\bin\java.exe" Signature
Run Code Online (Sandbox Code Playgroud) 我有一个 Python 脚本,我想在 Windows 上将其作为后台进程运行。
我可以在 Linux 上这样做:
python script.py &
Run Code Online (Sandbox Code Playgroud)
然后从终端断开进程:
disown
Run Code Online (Sandbox Code Playgroud)
在 Windows 上,到目前为止我所拥有的就是:
start /b python script.py
Run Code Online (Sandbox Code Playgroud)
但是,如果我关闭 CMD 窗口,脚本将停止运行。我在这里缺少任何额外的命令来保持脚本在后台运行吗?
我有一个 Windows 服务(Bamboo 集成服务器),它运行一个批处理文件作为该脚本的子进程(构建作业)。在该批处理文件中,我希望能够启动一个进程(我们称之为 workerprocess.exe)并让该进程在后台运行。这一切都很好,我用过:
start "title" /B workerprocess.exe
Run Code Online (Sandbox Code Playgroud)
这一切都很好。问题是这会阻止构建作业的完成。所以批处理脚本完成,但由于 workerprocess.exe 子进程,服务 (Bamboo) 不知道它已经完成:它仍然等待(并显示来自)workerprocess.exe 的输出。
我查看了 start 命令的文档,但看不到任何我想要的东西。我看到了这个问题,但它也没有真正的帮助 - 该服务最终仍然在等待该过程完成。
所以我想总结一下:如何从批处理脚本运行一个新进程,以便它完全分离并且不会阻止任何等待该批处理脚本完成的事情。
我想运行一个 HTML 页面,所以我将Execute / F5命令配置如下:
chrome.exe http://localhost:8080/$(FILE_NAME)
当 HTML 文件位于我的工作区的根目录时,它会起作用(因为我的 HTTP Web 服务器设置为这样做)。但是当文件在子文件夹中时它不起作用。
是否有预定义的变量(即$(RELATIVE_PATH))可用于获取相对于 Workspace 目录的文件路径?
预先感谢您的帮助。
我有一个小批处理文件,它将一些文件从一个文件夹复制到另一个文件夹,我已计划(通过 Windows 计划任务)每 1 小时运行一次:
@echo off
xcopy c:\foo c:\bar /E /C /F /Y
Run Code Online (Sandbox Code Playgroud)
因为这是我的工作站,所以当任务执行时我很可能正在工作,然后显示黑色的 dos 控制台窗口(持续 2-3 秒)并窃取窗口焦点。
我不希望看到文件被复制,当然批处理文件不要求任何用户输入。有没有办法避免完全显示控制台?
我使用 powershell.exe 作为程序,使用“ -Command "& C:\Windows\logon.ps1; exit $LASTEXITCODE"; ExecutionPolicy RemoteSigned”作为参数,但它似乎不起作用。
我想要的一些东西:
在任务调度程序中得到结果,所以我可能知道一切是否正常,或者是否有错误
将脚本的输出放入 output.txt 文件中(增量文件是否可能?)
运行脚本隐藏
我很难安排我写的任务。
基本上我创建了一个.bat执行 R 脚本的文件 ( script.R)。当我双击该.bar文件时,它就会被执行。我可以看到结果文件以及某种日志文件script.Rout。
当我尝试运行调度程序中的所有内容时,我无法让它运行。当我单击Run运行我的任务时,该任务会在History选项卡中生成多个条目,显示我的任务开始,并在同一秒结束。所以基本上没有什么被执行。
哪里可以查看出现了什么问题?我的脚本写入了一些位于此.Rout文件中的输出,但这不是使用任务计划程序创建的。
我已经将我的用户添加到策略设置中以安排任务,并且通过编辑任务,Windows 不会抱怨,我认为这不是问题。
希望获得一些帮助来找到问题。
编辑:
我现在意识到,只要我不选择 ,我的任务就会运行Execute task whether user is logged in or not。如果我切换到此设置,我的脚本将不会被执行。可能存在一些安全问题吗?
windows ×7
command-line ×6
batch ×2
batch-file ×2
process ×2
windows-7 ×2
bamboo ×1
bash ×1
cmd.exe ×1
focus ×1
html ×1
notepad++ ×1
popups ×1
powershell ×1
shortcuts ×1
shutdown ×1
webserver ×1
windows-xp ×1