2016-08-01 9 views
-2

bearbeitenMenschen auf dem Programm konzentrieren, die aufgerufen wurde, aber das Problem tritt auch auf xcopy Chargen wie die unten.Called Befehlsfenster schließen nicht im Batch & Power Hybrid

c: 
for /f "tokens=1-4 delims=/ " $$a in ('date /t') do (set weekday=%%a& set day=%%b& set month=%%c& set year=%%d) 
set jdate=%day%-%month%-%year% 
g: 
md brd_backup_%jdate% 
cd brd_backup_%jdate% md data md programs 
f: 
cd\brdata 
xcopy d:\brdata\data*.* g:\brd_backup_%jdate%\brdata\data*.* /a /y /s 
xcopy d:\brdata\programs*.* 

Original-Beitrag Unten:

ersetzt ich einen Server mit einer neuen Server 2012 R2-Box. Der folgende Batch soll die Filialnummer angeben und die Datei in die Software importieren. Es funktionierte für 6 Jahre auf dem alten Server. Ich habe die Batch-Datei auf den neuen Server kopiert und jetzt schließt die Batch-Datei das CMD-Fenster nicht mehr, wenn es fertig ist. Das passiert mit jeder Charge, die ich baue, alten oder brandneuen. Ich habe gelesen, dass ich meinen Stapel mit START "" beginnen und dann meinen Stapel in Anführungszeichen setzen sollte, aber das hat nicht funktioniert (ich habe es vielleicht falsch gemacht). Wie bekomme ich die CMD-Fenster automatisch geschlossen? Warum haben sie aufgehört? Die folgende Antwort besagt, dass Powershell helfen kann, aber ich habe keine Erfahrung mit Powershell und kann es nicht zur Arbeit bringen.

@echo off 
 
set store= 01 
 
set /p store= Which store would you like to import? (Two digits): 
 

 
f: 
 
cd\brdftp 
 

 
:: 
 
::  Pulls Store 
 
::::::::::::::::::::::: 
 

 
cd\brdftp\store%store% 
 

 

 
xcopy ir*.* f:\brdata 
 
xcopy *.pdf /a /s /y f:\brdata\images\dsdefimg 
 
del *.* /q 
 

 

 
::       imports files to brdata 
 
::::::::::::::::::::::::::::::::::::::::::::::::::::::: 
 
f: 
 
cd\brdata 
 

 
start /w plbwin rftw9417 -auto

+0

der So ** plbwin ** ist eine andere Batch-Datei, und das ist derjenige, der doesn nicht richtig schließen? Oder sagen Sie, dass die aufrufende Batch-Datei (d. H. Diejenige, die Sie oben aufgelistet haben) nicht schließt, nachdem sie ausgeführt wurde? – Filipus

+0

'plbwin' ruft ein Programm (brdata) auf, das mit der Sprache Sunbelt PL/B erstellt wurde. der 'plbwin' ist die ausführbare Datei und der' rftw9417' ist die spezifische Programmfunktion, die aufgerufen wird. '-auto' ist der Schalter, der nicht auf Benutzereingaben wartet. Es importiert die Dateien im Grunde nur in das brdata-Programm. Leider wird jedes Skript nicht automatisch geschlossen, ob der 'start/w' Teil an irgendeinem Punkt enthalten ist oder nicht. Hier ist ein Beispiel für ein anderes Skript, das die gleiche Sache tut: 'f: cd \ brdftp \ Over-Stocks bewegen ov * * f:. \ Brdata cd .. cd .. cd \ brdata plbwin posw9408' –

+0

Batch-Dateien handeln nicht, um die von ihnen gestarteten Eingabeaufforderungsfenster zu schließen. Die Eingabeaufforderungsfenster verschwinden automatisch, wenn das in ihnen ausgeführte Programm beendet wird. Das klingt wie Ihr echtes Problem ist "* plbwin.exe nicht auf Server 2012 r2 *" beendet? – TessellatingHeckler

Antwort

0

ursprünglichen Skript ändern auszuführen:

start "" /b plbwin rftw9417 -auto 

Alternativ versuchen:

call plbwin rftw9417 -auto 

Wenn die Batch-Fenster noch in der Nähe nicht ersetzen Vollweg mit der Weg zum plbwin.exe, führen Sie dann Powershell-Befehl aus Ihrer Charge eines Zielprogramms in einem versteckten Fenster zu starten:

set "img=fullpath\plbwin.exe" & set "cfg=rftw9417 -auto" 
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process -WindowStyle hidden -FilePath '%img%'"^ 
"-WorkingDirectory '%img:~0,-11%' -ArgumentList '-f ""%cfg%"""'}" 
+0

Keine der beiden Funktionen funktionierte.Ich habe eine Stapeldatei erstellt, die einfach www.google.com pingt und das Cmd-Fenster schließt, aber alles, was ein externes Programm aufruft, enthält das geöffnete cmd-Fenster. Ich habe einmal eine Woche gewartet und das cmd-Fenster hat sich immer noch nicht geschlossen. –

+0

@Aaron Martin Ich habe die Antwort aktualisiert. Testen, studieren und spielen Sie mit dem Powershell-Befehlsformat, wenn Fehler auftreten. Posten Sie sie hier. Es funktioniert großartig für mich in dem gleichen Szenario, wenn bestimmte Dienste in einem versteckten Fenster gestartet werden. – sambul35

+0

Der Übersichtlichkeit halber benennen Sie bitte Ihre Frage in: _Called Cmd-Fenster schließt nicht bei Batch-Completion_. – sambul35