2011-12-09 5 views
2

Tclを使用してWindowsでファイル名のないパスを取得するにはどうすればよいですか? は、私はこのような完全なパスを持っている:Windowsでのファイル名のないパスの取得

c:\My_Designs\ipcore_script\test\src\IP_CORE\mux\sus.do

私はパスのみを必要とし、これを取得するために、ファイル名を取り除きたい:

c:\My_Designs\ipcore_script\test\src\IP_CORE\mux

答えて

6

それはdirnameだ、manualから:

ファイル名名前

最後の要素を除いたすべてのパスコンポーネントで構成される名前を返します。 nameが相対ファイル名で、パス要素が1つしかない場合は、.'' (or: ''を返します。 nameがルートディレクトリを参照する場合、ルートディレクトリが返されます。例えば、

ファイルDIRNAMEのC:/

戻りC:/

チルダ置換は、コマンドを完了する必要がある場合にのみ実行されることに注意してください。例えば、

ファイルのdirname〜/ srcに/ foo.cを

戻っ〜/ srcに

ファイルのdirnameに対し〜

戻り/家庭(または似たような)。

+1

また、あなたは、execコールに渡すファイル名などとWindowsが特定の何かをしたい場合には、ファイルnativenameを使用することができます。 – TrojanName

+0

+1:[もっと最近のドキュメント](http://www.tcl.tk/man/tcl8.6/TclCmd/file.htm#M13)にリンクしたいと思っていますが、これはこれと同じですコマンド。 –

1
set path1 [info script] 
# get the path and file name of currently opened file 
puts $path1       
# shows the path            
set dir1 [file dirname $path1] 
# getting the directory from the fullpath       
puts $dir1 
関連する問題