我正在編寫一個報告腳本,它是便攜式測試包的一部分。用戶可以在系統中的任何地方解壓縮包,這很好,但這意味着我無法對路徑進行硬編碼。如何操作Tcl中路徑名的組件?
假設在我的系統上,這個腳本位於C:/projects/testpackage/foo/bar/script.tcl。我需要設置一個變量packageLocation,作爲/ testpackage的路徑。在這個例子中,它將是C:/ Projects/testpackage。但是,當用戶獲得包裹時,他或她可以將其放在任何地方,如下所示:
C:/ Users/whatever/testpackage。
那麼,如何從當前運行的腳本的位置調用兩個級別?在批處理中,我可以做
:: example.bat
cd %~dp0
cd ../..
set packageLocation=%cd%
在Tcl中,我迷路了。我知道正在運行的腳本的當前位置可以被稱爲$ :: argv0。我試過使用CD ../..,但無濟於事。它試圖將packageLocation設置爲「../..C:/Projects/testpackage/foo/bar/script.tcl」。
任何幫助表示讚賞。謝謝!