2010-05-11 17:31:57 +0000 2010-05-11 17:31:57 +0000
134
134

Hoe kan ik een batchbestand uitvoeren zonder een "opdrachtvenster" te starten?

Kan ik op Windows XP een batch (.bat of .cmd) bestand uitvoeren, via een snelkoppeling, zonder een “zwart venster”?

回答 (9)

88
88
88
2010-05-11 19:55:49 +0000

Sla het volgende op als wscript, bijvoorbeeld hidecmd.vbs na het vervangen van “testing.bat” door de naam van uw batchbestand.

Set oShell = CreateObject ("Wscript.Shell") 
Dim strArgs
strArgs = "cmd /c testing.bat"
oShell.Run strArgs, 0, false

De tweede parameter van oShell.Run is intWindowStyle waarde die het uiterlijk van het venster van het programma aangeeft en de nulwaarde is voor verborgen venster.

De referentie is hier http://msdn.microsoft.com/en-us/library/d5fk67ky.aspx

45
45
45
2012-02-15 09:52:03 +0000

Dit is slechts een vereenvoudiging van Shaji’s antwoord. U kunt uw batch-script uitvoeren via een VBScript (.vbs) script zoals dit:

'HideBat.vbs
CreateObject("Wscript.Shell").Run "your_batch_file.bat", 0, True

Dit zal uw batch-bestand uitvoeren zonder dat er een opdrachtvenster wordt getoond.

21
21
21
2014-01-10 17:50:44 +0000

Om de “Use Windows Scripting” antwoorden uit te breiden (wat ik het beste vind omdat het al ingebouwd is) is hier hoe je het doet door een enkel wrapperscript te gebruiken en de naam van het “echte” batchbestand als parameter door te geven. Extra parameters worden doorgegeven aan het batch-bestand.

If WScript.Arguments.Count >= 1 Then
    ReDim arr(WScript.Arguments.Count-1)
    For i = 0 To WScript.Arguments.Count-1
        Arg = WScript.Arguments(i)
        If InStr(Arg, " ") > 0 Then Arg = """" & Arg & """"
      arr(i) = Arg
    Next

    RunCmd = Join(arr)
    CreateObject("Wscript.Shell").Run RunCmd, 0, True
End If

Dus b.v. sla het bovenstaande bestand op als NoShell.vbs ergens op en roep dan:

NoShell.vbs c:\foo\my_batch_file.bat

. Tenslotte, als je dit wilt uitvoeren vanuit een plaats die het .vbs-bestand niet begrijpt (zoals een “Externe Hulpmiddelen” in Visual Studio), zul je C:\Windows\System32\wscript.exe willen aanroepen met het vbs-bestand als eerste parameter en je batch-bestand als tweede.

9
9
9
2010-05-11 19:50:45 +0000

U kunt de eigenschappen van de snelkoppeling wijzigen om deze geminimaliseerd uit te voeren.

Om deze volledig onzichtbaar uit te voeren heeft u iets anders nodig, zoals Windows Scripting.

9
9
9
2010-05-11 17:36:13 +0000

Gebruik start met de optie ‘/B’. Bijvoorbeeld:

@echo off
start /B go.bat
6
6
6
2012-10-22 21:17:19 +0000

Free GPL open source “Create Hidden Process” http://www.commandline.co.uk/chp/

Microsoft Security Essentials, en waarschijnlijk zullen de meeste andere virus/malware scanners de executable, chp.exe, als een virus behandelen omdat het elk programma dat u opgeeft verbergt voor het weergeven van een venster of een taakbalkknop, net zoals virussen dat doen.

Het is geen virus. Het verbergt het doelproces niet dat het bijvoorbeeld in de taakbalk verschijnt. En natuurlijk is de broncode inbegrepen, zodat je kunt zien dat het erg klein is en niets anders doet dan het programma uitvoeren dat je het geeft.

Je hoeft er niet eens op te vertrouwen dat de inbegrepen chp.exe echt is gebouwd vanuit die bron. Je kunt de meegeleverde chp.exe weggooien en zelf compileren vanuit de broncode, en alle benodigde tools zijn zelfs gratis en downloadbaar.

  • *

Je kunt ook gewoon een snelkoppeling maken naar het .bat of .cmd bestand en dan met de rechtermuisknop klikken op de snelkoppeling, Eigenschappen, tabblad Snelkoppeling, Uitvoeren: Geminimaliseerd. Gebruik dan in geplande taken de snelkoppeling in plaats van het .bat/.cmd-bestand direct. Dat voorkomt dat er een venster verschijnt, maar er verschijnt nog steeds een taakbalkknop.

6
6
6
2013-05-29 03:48:54 +0000

U kunt windowscripting gebruiken zoals AutoIt .

Als voorbeeld, schrijf dit gewoon naar de AutoIt script editor. Het is vrij eenvoudig

Run("C:\test\batchfile.bat", "", @SW_HIDE)

Als u het in een lus wilt uitvoeren,

$x=0
Do
 Run("C:\test\batchfile.bat", "", @SW_HIDE)
 Sleep(5000)
Until $x = 1

compileer het als .exe - en u bent klaar.

  • *

Op dezelfde manier, in AutoHotkey :

#NoTrayIcon ; To prevent momentary icon pop-up
run whatever.bat arg1 arg2,,hide
6
6
6
2014-10-27 08:23:11 +0000

Eenvoudige oplossing, zonder gebruik te maken van extra programma’s.

  1. Maak het batchbestand aan dat u wilt uitvoeren en test het.
  2. 2. Maak er een snelkoppeling voor.
  3. 3. Bewerk de eigenschappen van de snelkoppeling: kies in het tabblad Snelkoppeling voor Geminimaliseerd uitvoeren. Wijs er een sneltoets aan toe en je bent klaar!

Veel succes!

5
5
5
2010-05-12 16:03:41 +0000

Gebruik Hidden Start (kost $20)

Hidden Start - Voer toepassingen en batchbestanden uit zonder een Consolevenster of UAC Prompt

Console toepassingen en batchbestanden worden regelmatig uitgevoerd bij het opstarten van Windows of in een schema. Het grootste ongemak hiervan is dat elke applicatie een consolevenster opent dat op het scherm flikkert. Hidden Start (of Hstart) is een lichtgewicht hulpprogramma voor de opdrachtregel waarmee u console-applicaties en batch-bestanden kunt uitvoeren zonder enig venster op de achtergrond, UAC-privilege-verhoging kunt afhandelen onder Windows 7 en Vista, meerdere commando’s parallel of synchroon kunt starten en nog veel meer.