2014-03-12 37 views
0

我有一種情況,我使用sas x命令來解壓縮一個文件夾,並且只選擇.sas文件和下面的代碼工作正常,因爲沒有目錄路徑中的嵌入式空間..sas解壓縮x命令不工作作爲目錄路徑嵌入空間

x「cd & egp_location」; - >當前目錄 - & egp_location解析爲沒有嵌入空格的文件夾路徑。

x「unzip & egp_name * .sas」; - >在當前目錄中& egp_name解析需要解壓縮的文件名。

如果有嵌入的空格,上面的代碼行不起作用。

請幫忙。

感謝

回答

0

嘗試:

x cd %STR(%")&egp_location%STR(%"); 
x unzip %STR(%")&egp_name%STR(%") *.sas; 

我不知道unzip命令的語法,但STR%位將增加約宏觀變量的報價。

另外,在SAS中使用X語句時,在整個命令周圍不需要雙引號。

+0

感謝您的回覆。 嘗試使用上述代碼,但&egp_location得到兩次解決。像 如果egp_location = \ fjdkfjdkj \ fdkfjdkfjd \ fjdkfjd kfjdkfjdkj fdjfkdj.egp是越來越解析爲.. ' 「\ fjdkfjdkj \ fdkfjdkfjd \ fjdkfjd kfjdkfjdkj fdjfkdj.egp \ fjdkfjdkj \ fdkfjdkfjd \ fjdkfjd kfjdkfjdkj fdjfkdj.egp'」 領先到一個錯誤,這樣的目錄不可用。 – user3136579

+0

我發佈的代碼不應解析&egp_location兩次。這個宏變量的**精確**值是什麼? – mjsqu

+0

這裏是日誌消息 - SYMBOLGEN:宏變量EGP_LOCATION解析爲/ abc/defg/hi/dev/userid/sas_mig/sas_hhhh/abc defgh cysd - x waves - fdfdfd ererere reresdf met email v2/ 錯誤:'/ abc/defg/hi/dev/userid/sas_mig/sas_hhhh/abc defgh cysd - x waves - fdfdfd ererere reresdf met email v2 /「/ abc/defg/hi/dev/userid/sas_mig/sas_hhhh/abc defgh cysd - x waves - fdfdfd ererere reresdf遇到郵件v2/ 「':沒有這樣的目錄。 – user3136579

2

你可以這樣做:

x "unzip ""&egp_name"" *.sas " ; 

雙雙引號解析爲一個雙引號字符。

這是假設解壓語句是其他有效的 - 如果你運行

options mprint symbolgen; 

,你會得到充分的解壓聲明日誌 - 複製/粘貼到控制檯,看看它是否工作。如果沒有,請調試。