2016-08-01 47 views
-2

編輯人們聚焦於正在調用的程序,但是這個問題上XCOPY批像下面這樣即使發生。調用命令窗口不批&PowerShell的混合關閉

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*.* 

原貼如下圖:

我更換了服務器與新的服務器2012 R2箱。下面的批次應該提示輸入商店編號,然後將文件輸入到軟件中。它在舊服務器上運行良好6年。我將批處理文件複製到新服務器,現在批處理文件在完成時不會關閉CMD窗口。這發生在任何批次我構建,舊的或全新的。我已經讀過,我應該用START「」開始我的批處理,然後將我的批處理放在引號中,但這不起作用(我可能做錯了)。我如何讓CMD窗口自動關閉?他們爲什麼停下來?下面的答案表示Powershell可能會有所幫助,但是我對Powershell沒有經驗,並且無法使其運行。

@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

所以** ** plbwin是另一個批處理文件,這就是那並不是一個關閉不好?或者你是否說它是調用批處理文件(即上面列出的那個文件),它在執行後不會關閉? – Filipus

+0

'plbwin'調用使用Sunbelt PL/B語言創建的程序(brdata)。 'plbwin'是可執行文件,'rftw9417'是它調用的特定程序函數'-auto'是不等待用戶輸入的開關。它基本上只是將數據文件導入brdata程序。 不幸的是,任何腳本都不會自動關閉,無論是否包含「start/w」部分。這裏是另一個腳本,做同樣的事情的一個例子: 'F: CD \ brdftp \積壓 移動OV * * F:\ BRDATA CD .. CD .. CD \ BRDATA plbwin posw9408' –

+0

批處理文件不會關閉它們啓動的命令提示符窗口,當運行它們的程序退出時,命令提示符窗口會自動消失。這聽起來像你真正的問題是「* plbwin.exe不會退出Server 2012 R2 *」? – TessellatingHeckler

回答

0

修改原來的腳本來運行:

start "" /b plbwin rftw9417 -auto 

或者,嘗試:

call plbwin rftw9417 -auto 

如果批處理窗口仍然沒有關閉,更換完整路徑與路徑plbwin.exe,然後從批處理運行PowerShell命令在一個隱藏的窗口中啓動目標程序:

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

這兩個函數都不起作用。我創建了一個批處理文件,該文件只需ping www.google.com並且cmd窗口關閉,但任何調用外部程序的文件都會打開cmd窗口。我已經等了一週,cmd窗口仍然沒有關閉。 –

+0

@Aaron Martin我更新了答案。如果出現任何錯誤,請對其進行測試,學習和使用Powershell命令格式。張貼在這裏。當在隱藏窗口中啓動某些服務時,它適用於同樣的場景。 – sambul35

+0

爲了清楚起見,請將您的問題重命名爲:_Called命令窗口不會在batch completion_上關閉。 – sambul35