3
A
回答
0
我不是很了TCL(再)來加速
你會拿到劇本的名稱作爲$argv0
我會簡單地套用功能/公用事業realpath
隨後dirname
得到它的目錄
2
4
當腳本執行直接合並,您可以使用:
set theDir [file normalize [file dirname [info script]]]
這必須在腳本的頂層或namespace eval
(你應該使用variable
而不是set
技術原因)內運行。特別是,它不應該被放置在一個過程中,並在稍後被調用,因爲到那時爲止,info script
調用將返回其他內容。因此,典型的包執行腳本可能是這樣的:
namespace eval ::samplePackage {
variable theDir [file normalize [file dirname [info script]]]
source $theDir/foo.tcl
source $theDir/bar.tcl
load $theDir/grill[info sharedlibextension]
package provide samplePackage 1.0
}
如果這是主要的應用程序,也可以代替info script
使用$::argv0
。這不會改變整個代碼的運行(除非你手動設置它)。如果通過相對符號鏈接調用腳本
+0
'file normalize'在那裏,以便您可以安全地使用'cd'命令。如果您從不更改進程當前的工作目錄,則不需要它。 –
0
file normalize [file dirname [info script]]
將無法可靠地工作。我用它來緩解可能出現的問題:
proc script_dir {} {
set r [info script]
if {![catch {file link $r} symlink]} {
set r [file join [file dirname $r] $symlink]
}
return [file dirname [file normalize $r]]
}
相關問題
- 1. Windows CMD腳本獲取文件存在的目錄
- 2. Powershell腳本獲取目錄樹的FullName
- 3. 獲取shell腳本的目錄的父目錄
- 4. 獲取目錄動態與python腳本
- 5. bash - 獲取目錄腳本從
- 6. PowerShell腳本獲取目錄總大小
- 7. nAnt腳本需要獲取父目錄
- 8. F#FAKE獲取腳本目錄
- 9. 獲取腳本存儲位置的目錄
- 10. Shell腳本 - 使目錄不存在
- 11. 獲取bash腳本文件所在的目錄
- 12. 如何在Jmeter中獲取jmeter腳本的目錄
- 13. 如何在Dart中獲取當前腳本的目錄?
- 14. Bash腳本 - 如何獲取腳本目錄,以便它在Cron運行
- 15. 在c#腳本中獲取和使用當前目錄
- 16. Unix - 如何在一個目錄中獲取多個shell腳本?
- 17. 無法在當前目錄中獲取腳本
- 18. 在Xcode構建腳本中獲取用戶目錄
- 19. 如何獲取腳本中的vbscript文件的目錄
- 20. 命令行.cmd/.bat腳本,如何獲取運行腳本的目錄
- 21. 如何使用perl腳本獲取目錄的屬性?
- 22. 如何獲取shell腳本中目錄中的文件列表?
- 23. Linux Shell腳本 - 如何獲取參數的上層目錄$ n
- 24. 如何獲取PHP腳本被調用的目錄
- 25. 如何獲取java腳本代碼的根目錄?
- 26. 獲取git工作目錄根的腳本?
- 27. 獲取批處理腳本中特定路徑的父目錄
- 28. Shell腳本在目錄
- 29. Shell腳本:在目錄
- 30. Python的CGI腳本在本地目錄
操作系統偏執。真棒。 –
誰是這個「我們」的蒼白臉? ;-) – TrojanName
當然我們所有的思想正確的人;) –