Hoe kan ik een Windows opdrachtregel in de achtergrond uitvoeren?
Hoe kan ik een Windows opdrachtregel in de achtergrond uitvoeren, zonder dat deze interactie heeft met de actieve gebruiker?
Hoe kan ik een Windows opdrachtregel in de achtergrond uitvoeren, zonder dat deze interactie heeft met de actieve gebruiker?
Dit is een beetje laat, maar ik kwam net deze vraag tegen toen ik zelf op zoek was naar het antwoord en ik vond dit:
START /B program
die, op Windows, het dichtst bij het Linux commando ligt:
program &
Vanaf het console HELP systeem:
C:\>HELP START
Starts a separate window to run a specified program or command.
START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/NODE <NUMA node>] [/AFFINITY <hex affinity mask>] [/WAIT] [/B]
[command/program] [parameters]
"title" Title to display in window title bar.
path Starting directory.
B Start application without creating a new window. The
application has ^C handling ignored. Unless the application
enables ^C processing, ^Break is the only way to interrupt
the application.
Een probleem dat ik zag is dat je meer dan één programma hebt dat naar het console-venster schrijft, het wordt een beetje verwarrend en rommelig.
Om het niet te laten interageren met de gebruiker, kun je de uitvoer omleiden naar een bestand:
START /B program > somefile.txt
Ik vermoed dat je bedoelt: Draai iets op de achtergrond en krijg de commandoregel onmiddellijk terug terwijl het gelanceerde programma doorgaat.
START "" program
die het Unix equivalent is van
program &
Uw vraag is vrij vaag, maar er is een post op ServerFault die de informatie kan bevatten die u nodig hebt. Het antwoord daar beschrijft hoe u een verborgen batch-bestandsvenster kunt uitvoeren:
U zou het in plaats daarvan geruisloos kunnen uitvoeren met behulp van een Windows Script-bestand. Met de Run-methode kunt u een script in onzichtbare modus uitvoeren. Maak een
.vbs
bestand als ditDim WinScriptHost Set WinScriptHost = CreateObject("WScript.Shell") WinScriptHost.Run Chr(34) & "C:\Scheduled Jobs\mybat.bat" & Chr(34), 0 Set WinScriptHost = Nothing
en plan het in. Het tweede argument in dit voorbeeld stelt de vensterstijl in. 0 betekent “verberg het venster”.
START /MIN program
de bovenstaande is vrij dichterbij met zijn Unix tegenhanger program &
U kunt dit (commentaar!) PowerShell-script gebruiken:
# Create the .NET objects
$psi = New-Object System.Diagnostics.ProcessStartInfo
$newproc = New-Object System.Diagnostics.Process
# Basic stuff, process name and arguments
$psi.FileName = $args[0]
$psi.Arguments = $args[1]
# Hide any window it might try to create
$psi.CreateNoWindow = $true
$psi.WindowStyle = 'Hidden'
# Set up and start the process
$newproc.StartInfo = $psi
$newproc.Start()
# Return the process object to the caller
$newproc
Sla het op als een .ps1
-bestand. Na het inschakelen van de scriptuitvoering (zie Scripts inschakelen in de PowerShell-tag wiki ), kunt u het een of twee strings doorgeven: de naam van het uitvoerbare bestand en optioneel de argumentieregel. Bijvoorbeeld:
.\hideproc.ps1 'sc' 'stop SomeService'
Ik bevestig dat dit werkt op Windows 10.
Dit is hoe mijn PHP interne server naar de achtergrond gaat. Dus technisch gezien zou het voor iedereen moeten werken.
start /B "" php -S 0.0.0.0:8000 &
Bedankt.
Een verwant antwoord, met 2 voorbeelden:
noem START /B “mijn calc” “calc.exe”
bel start /min “n” “notepad.exe”
bel START /MIN “my mongod” “%ProgramFiles%MongoDB\Server”
Hoop dat het helpt.
U kunt de juiste manier zien om dit te doen in deze link: Hoe een geplande taak uit te voeren zonder een opdrachtvenster Verschijnt
Samenvattend, moet u het selectievakje ‘Uitvoeren of de gebruiker is ingelogd of niet’ aanvinken. De gebruikersgegevens van de taak moeten worden ingevoerd nadat u op ‘Ok’ hebt gedrukt.
kwam net deze thread windows 7 tegen, gebruik makend van power shell, draait executables op de achtergrond, exact hetzelfde als unix bestandsnaam &
voorbeeld: start -NoNewWindow bestandsnaam
help start
NAME Start-Process
SYNTAX Start-Process [-ArgumentList] ]. [-Credential] [-WerkingDirectory] [-LoadUserProfile] [-NoNewWindow] [-PassThru] [-RedirectStandardError] [-RedirectStandardInput] [-RedirectStandardInput]. RedirectStandardOutput] [-Wacht] [-WindowStyle | Hidden | Minimized | Maximized}] [-UseNewEnvironment] []
Start-Process [-FilePath] <string> [[-ArgumentList] <string[]>] [-WorkingDirectory <string>] [-PassThru] [-Verb
<string>] [-Wait] [-WindowStyle <ProcessWindowStyle> {Normal | Hidden | Minimized | Maximized}]
[<CommonParameters>]
ALIASES saps start