我有一個非常簡單的批處理文件,基本上檢查是否設置了enviornment變量,然後嘗試設置它。它沒有正確地設置變量,而且我對批處理文件通常很陌生,所以我對我正在編寫的腳本有一些一般性問題。任何洞察力將不勝感激。這是我的問題。在Windows批處理腳本
- 在第15行,如果我不知道目錄的全名呢?即如果我剛剛知道'吹口哨'是它的一部分,並且想要檢查它是否爲DIR?
- 在第16和19行,我想說如果我在'whistle-1.0.0'中,我知道BELFRAMEWORK_HOME變量應該設置爲1之上的目錄。我嘗試用'%DIR%..'來做到這一點,但這似乎沒有效果。我如何將BELFRAMEWORK_HOME設置爲'whistle-1.0.0'上方的1個目錄?
- 在第17和20行中,BELFRAMEWORK_HOME變量未打印。我不明白爲什麼,因爲它與第10行和第12行有相同的形式,如預期的那樣迴應變量。爲什麼BELFRAMEWORK_HOME沒有迴音?
- 最後一件事,有沒有什麼好的在線資源可以更多地瞭解這種類型的腳本?
謝謝!
[email protected] off
2
3if not defined JAVA_OPTS (
4 set JAVA_OPTS=-Xmx1024m -Dderby.stream.error.field=org.openbel.framework.common.enums.DatabaseType.NULL_OUTPUT_STREAM
5) else (
6 set JAVA_OPTS=%JAVA_OPTS% -Dderby.stream.error.field=org.openbel.framework.common.enums.DatabaseType.NULL_OUTPUT_STREAM
7)
8
9set DIR=%CD%
10echo "DIR/CD : %DIR%"
11set DIR=%~dp0
12echo "DIR/~dp0 : %DIR%"
13
14if not defined BELFRAMEWORK_HOME (
15 if "%DIR%"=="whistle-1.0.0" (
16 set BELFRAMEWORK_HOME=%DIR%\..\
17 echo "DIR == whistle, BELFRAMEWORK_HOME is now: %BELFRAMEWORK_HOME%"
18 ) else (
19 set BELFRAMEWORK_HOME=%DIR%\..\
20 echo "DIR != whistle, BELFRAMEWORK_HOME is now: %BELFRAMEWORK_HOME%"
21 )
22)
23
24set WHISTLE_HOME=%~dp0
25java %JAVA_OPTS% -jar %WHISTLE_HOME%\whistle-1.0.0.jar %*
非常感謝!我不僅能夠使我的批處理文件正常工作,而且我理所當然地認爲我對這個腳本中發生的事情有了更好的理解。優秀的參考,我期待更深入地閱讀它們。如果我可以給你4個複選標記,我會:) – Houdini 2012-08-15 18:20:38