2014-04-03 16 views
1

現在我有一個批處理文件,它將PATH變量設置爲所有必需的目錄(實際上有更多必需的目錄,我只是把它們出這樣的代碼片段不會太長)使用傳入參數值設置批處理文件中的PATH變量

@echo off 

set PATH=D:/src/trunk/build/bin;D:/src/trunk/build/bin/CoreTools;D:/src/trunk/build/bin/Plugins/Extensions;D:/src/trunk/build/bin/Plugins/CustomUI 
set DEBRIEF_INSTALL_DIR=D:/src/trunk/DebriefSuite/D3D_Installation 
set READERS=D:/src/trunk/build/bin/CoreTools/Readers 
set BINARY_DIR=D:/src/trunk/build 

cd D:/src/trunk/build/bin 

start PROGRAM.exe --ConfigFile="D:/src/trunk/DebriefSuite/Installation/config/Projects/config.xml"^
        --Mode-File="D:/src/trunk/DebriefSuite/Installation/config/Projects/Common/anotherconfig.xml"^
        --Env:Bin="D:/src/trunk/build/bin" 


cd D:/src/trunk 

它工作正常,但所有的目錄是硬編碼。這需要能夠爲可能在不同位置具有其根目錄的其他計算機工作。我需要能夠傳入根目錄(類似於「D:\ different_root_location」),並將其替換爲此代碼中當前顯示爲「D:\ src \ trunk」的每個位置。問題是,我不確定這樣的語法會是什麼。我是編寫批處理文件的新手。我試圖做類似

SET ROOTDIR=%1 ..... 

然後

set PATH=%ROOTDIR%/build/bin;%ROOTDIR%/build/bin/CoreTools;%ROOTDIR%/build/bin/Plugins/Extensions;%ROOTDIR%/build/bin/Plugins/CustomUI .......... 

start PROGRAM.exe --ConfigFile="%ROOTDIR%/DebriefSuite/Installation/config/Projects/config.xml"^

,但沒有奏效。我不確定如何使這項工作!另外,任何關於編寫批處理文件的良好信息源的鏈接都將非常有用,因爲我剛開始!

+0

你能澄清你的意思是通過它沒有工作?我只是嘗試了一個批處理文件,確實如此,它似乎工作正常。請注意,您可以在批處理文件的其餘部分中使用%1而不是%ROOTDIR%... – DotThoughts

+0

我不確定爲什麼,但PROGRAM.exe(需要所有以前設置的工作)沒有運行就像它在硬編碼路徑時所做的一樣。我想知道是否有其他問題不是這種語法。 – Alissa

+0

你確定你需要所有這些文件夾在同一棵樹,路徑? – foxidrive

回答

0

更改您的線條,使其包含原始路徑。

從這:

set PATH=D:/src/trunk/build/bin... 

這樣的:(和Windows使用\而不是/即使它在某些情況下)

set PATH=%path%;D:\src\trunk\build\bin.... 
相關問題