2013-10-22 49 views
3

我想弄清楚如何安裝一些程序的組件駐留在聯網路徑上的兩個不同的驅動器上。但是,無論何時我使用pushd \\xyz\c$,我都會得到映射的驅動器,這意味着我無法使用任何知識,例如c:\install e:\mycomponents.dll。無論如何,一旦我使用了pushd命令,我可以做到這一點?推 - 從cmd處理多個驅動器

如何確保我保持驅動器相同,例如。我正在安裝服務。因此,當我安裝服務時,似乎需要保持路徑與.exe的實際位置相同,這意味着我遇到了問題。

有沒有辦法簡單地使用pushd,但在同一時間不實際地圖驅動器?在安裝服務時,當我使用net use時,我發現在映射的驅動器上安裝時存在問題,因爲可以安裝的服務在啓動時沒有找到實際的.exe提供服務。

所以要擴大這個,有沒有辦法解決這個問題,使用net usepushd或讓我安裝服務的組合:c:\windows\..\installutil e:\mynode?因此,爲了澄清,我需要以某種方式能夠通過它們的相對驅動器(即E:\和C:\)來查看遠程計算機上的兩個驅動器,如果我使用映射的驅動器號,那麼這意味着安裝服務是一件痛苦的事情因爲我不能使用路徑。

問題1:

如果我使用pushd的,那麼我無法看到服務器上的兩個驅動器號。

net use i: %Machine1PathFRM% 
pushd %Machine1PathZIP% 
i:\installutil /username=ABC /password=abc %ZMN% 
popd 

問題2:

如果我使用net use然後我雖然我可以用這個說的安裝utils的,當它涉及到運行服務,Windows無法找到本地文件,因爲它有執行某種文件映射過程確實非常令人討厭。

REM Install Processes Machine 1 

REM net use e: %Machine1PathZIP% 
REM net use i: %Machine1PathFRM% 
REM i:\installutil /username=ABC /password=abc e:\%ZMN% 
REM i:\installutil /username=ABC /password=abc e:\%ZPL% 
+0

你真的在使用單一任務的DOS操作系統嗎?或者你只是在窗口內使用提示窗口? – user2284570

+0

我在使用Win 7 – disruptive

+0

你的問題現在有點混亂。您應該顯示批處理腳本的相關部分 – jeb

回答

3

pushd //xyz/c$也將改變目前diretory映射的驅動器號。

pushd //xyz/c$ 
for /F "delims=" %%A in ("%cd%") do set "mapDrive=%%~dA" 
%mapDrive%\install %mapDrive%:\mycomponents.dll 
+0

如果他正在使用The Dos操作系統,它將無法工作:因爲批處理擴展命令僅適用於NT版本的Windows。 CMD.exe比原來的command.com功能強大得多。 – user2284570

+1

@ user2284570他不能使用DOS,因爲他使用'PUSHD' – jeb

+0

這是他的情況,如果他使用的是MS-DOS。但還有其他的DOS實現。大多數FreeDos應用程序批量解釋器都具有Pushd命令。但for命令的語法仍然與cmd.exe完全不同。另外,他使用了DOS標籤(查看它的描述)。今天FreeDos似乎比MS-DOS更有用。另外,他們還爲MS-DOS環境改進了解釋器:它被稱爲4DOS。 – user2284570

相關問題