在 Linux 中你可以这样做:
$ php blah.php > some.log& 复制代码
blah.php
在后台运行。这与Ctrl+z然后bg
执行命令相同。
是否有与 Windows 命令提示符等效的命令?
答案1
Windows 确实具有与 Linux 类似的功能&
,即启动进程,使它们不会接管您的控制台。不过,它不是命令行标志,而是命令前缀。
只需在命令start
前面运行即可,例如:
C:\> start myprog.exe
它还适用于命令,而不仅仅是可执行文件:
C:\> start dir
这将启动一个新的控制台窗口并在其中运行命令。
如果您不想在运行命令时出现新的控制台窗口,请使用开关/B
,如下所示:
C:\> start /B myprog.exe
您还可以指定其他几个选项来配置如何运行命令。您可以通过阅读start
使用 的帮助来了解它们start /?
。
答案2
我看到一些用户建议使用start
此/B
选项。这种方法的一个问题是它不能很好地与控制台应用程序配合使用。至少根据我的经验,一旦cmd
关闭,子进程就会终止。
但是,PowerShell 命令Start-Process -WindowStyle hidden <path to executable>
可以完成这项工作。
答案3
这可以从命令提示符或批处理文件在后台运行文件
@Echo off
Echo Set WshShell = CreateObject("WScript.Shell") >>%temp%\ghost.vbs
Echo WshShell.Run chr(34) ^& "MyFile" ^& Chr(34), 0 >>%temp%\ghost.vbs
Echo Set WshShell = Nothing >>%temp%\ghost.vbs
start %temp%\ghost.vbs
timeout /t 1 >nul
del %temp%\ghost.vbs
现在将其替换MyFile
为您希望在后台运行的文件。
答案4
只是为了好玩,我尝试将“ssh -N -f -l”放入 Windows Powershell/命令提示符中,它确实进入了后台,但你必须关闭窗口才能摆脱它。我希望有一个 powershell 脚本运行“ssh -N -f -l”来建立端口隧道,但这样我就无法在 ssh 行之后在脚本中放入任何新行,它只会挂在那里,只有当 ssh 失败时才会执行剩余的行。我希望有一个与 Linux 的 & 符号等效的 powershell,这样我就可以转到下一行并运行 mstsc.exe 。