2013-02-19 122 views
0

我有這個蝙蝠一個問題:文件批量更改路徑

@echo off 

set CD1OLD=%CD% 
cd /d %~dp0 


%CD%\xxx.Http.Client.exe http://localhost:8081/aaa/comparer/aa/base/aa/compare >  debug_aaa_base.xml 
echo. 
%CD%\xxx.Http.Client.exe http://localhost:8081/aaa/comparer/aa/complessi/aa/compare > debug_aaa_complessi.xml 
echo. 
echo ****** LANCIO xxxx ****** 
%CD%\Lancio_xxxx.bat 
echo. 

這段代碼後,我需要運行此:

echo ****** SPOSTA FILES ****** 
%CD%\Elaborazione_aaa_Spostamento_files.exe 
cd /d %CD1OLD% 

,但它不工作..這似乎第一個代碼在執行代碼本身時更改其執行路徑,給第二個代碼塊執行造成問題。

特別是,如果我刪除此行

%CD%\Lancio_xxxx.bat 

一切工作正常。但我也需要運行這一行!

有什麼建議嗎?在此先感謝

問候

回答

1

請注意,如果您只是從另一個調用.bat,則命令處理器不會返回給調用者。調用批處理不會恢復執行,「調用」就像是一個簡單的goto,它轉到引用的批處理文件。

如果更換

%CD%\Lancio_xxxx.bat 

call %CD%\Lancio_xxxx.bat 

那麼該批處理文件執行之後,在那之後call線也將被執行的命令,這似乎是你在找什麼。

0

嘗試圍繞執行Lancio_xxx.bat

行這些命令保存命令PUSHD POPD和和恢復當前目錄分別

詳情請參閱以下鏈接:

http://ss64.com/nt/pushd.html

http://ss64.com/nt/popd.html

+0

問題不是一個變化的工作目錄。當從批處理腳本運行批處理腳本時,必須使用'call'(同步)或'start'(異步),否則控制將不會回到父腳本,並且該腳本中的其餘命令將不會執行。 – 2013-02-19 19:49:20