打算使用tcl提取目錄路徑的值。目錄路徑是這樣的:使用tcl提取目錄路徑中的某個值
C:\working\636-3419-3\S80\FILE
的目錄路徑並不總是相同的,由於不同的PC上不同的用戶,有些是:
C:\Users\name\351-3100-11\Desktop
Z:\backup\S70\721Z3121-3\FILE
我需要提取值(636-3419-3
或351-3100-11
...這些數字總是不同的),並設置爲一個變量(mom_number
),後面我使用它($mom_number
)。
我試圖拆分斜線上的路徑,它的工作原理,但對於其他情況下,我不知道如何只獲取數字值。請以代碼示例爲例。非常感謝。
下面是我寫的,其只能提取636碼.....
set mom_pn_number $mom_part_name
# Separate data with the character "\"
set pn_num [split $mom_pn_number \\]
# To search for the number from the separated data
set pn_number [lsearch -inline $pn_num 636*]
set mom_part_number $pn_number
(該$mom_part_name
是完整的目錄路徑),我不知道是否if和else語句將作品,但總是帶有錯誤。
這些數字可以是從0到9的任何類型,就像不同產品的序列號一樣。我嘗試使用[split $mom_pn_number \\]
來分割路徑,它與由空格分隔的輸出一起工作。
至於
C:\Users\name\351-3100-11\Desktop
我的意圖的結果是351-3100-11
。
如果一些用戶的一些其他目錄中保存自己的文件,下面的例子:
Z:\backup\S70\721Z3121-3\FILE
我的意圖的結果是721Z3121-3
。
感謝
如果你添加你的代碼,它確實可以幫助任何人。 – oneNiceFriend
另外,這些數字有什麼共同之處?他們總是「數字號碼」嗎?他們是否可以在單一路徑中多次出現,如果他們這樣做,您是否總是需要第一個實例? – Jerry
'C:\ Users \ name \ 351-3100-11 \ Desktop'和'Z:\ backup \ S70 \ 721Z3121-3 \ FILE'之間有什麼共同之處?前者似乎與您所介紹的「636-3419-3或351-3100-11 ...」相匹配,但應該從「Z:\ backup \ S70 \ 721Z3121-3 \ FILE」中提取出來? – kostix