shell 開啟檔案

2021-08-31 15:24:42 字數 813 閱讀 6915

我們都知道shell語句可以執行主程式開啟某一檔案,比如c:碟符有一excel檔案123.xls,我們可以使用以下語句來開啟它

shell "excel.exe c:\123.xls"

如果123.xls是在c:\program files下呢,我們是否仍可採用以下語句結構來開啟它

shell"excel.exe c:\program files\123.xls"

答案是否定的,即路徑名含有空格,你再如此呼叫將會絆個跟頭。為什麼?因為shell的第乙個引數(字串)既要包含檔名又要包含命令列,它怎麼分哪?只有用空格來區分。所以,一旦路徑中包含空格,它就會就查詢空格前的檔案,並自作聰明地加上exe(或com等其他可執行類副檔名)後執行,這樣當然是失敗的(因為c:\program.exe是不存在的)。如何解決?

我們可以採取以下語句來補救

shell "excel.exe ""c:\program files\123.xls"""(注意紅色字元段中的空格)

如果檔名是一變數,我們又該如何表示呢,比如

filename="c:\program files\123.xls",我們能否採用以下語句

shell"excel.exe "& filename

答案是不行滴,因為變數中的空格存在,我們又該作何處理呢,其實也是我這幾年對shell語句用法的一些探索和總結,

我們稍作處理就不會害怕空格這只討厭的蒼蠅了,請看下面:

filename=chr(34) & "c:\program files\123.xls" & chr(34)

shell"excel .exe " & filename(注意紅色字元段中的空格)

SHELL程式設計 利用CSIDL開啟特殊資料夾

csidl描述及使用說明 csidl 表示的是windows shell中乙個特殊資料夾的標識值。這裡說的特殊資料夾指的是由windows shell所定義的資料夾,例如 我的文件 站 inernet cache資料夾 就是一些由shell指定的特殊資料夾.這些特殊資料夾可以是乙個磁碟上的物理路徑,...

SHELL程式設計 利用CSIDL開啟特殊資料夾

csidl描述及使用說明 csidl 表示的是windows shell中乙個特殊資料夾的標識值。這裡說的特殊資料夾指的是由windows shell所定義的資料夾,例如 我的文件 站 inernet cache資料夾 就是一些由shell指定的特殊資料夾.這些特殊資料夾可以是乙個磁碟上的物理路徑,...

python開啟檔案 Python檔案開啟模式

python 內建函式 python 內建函式 python open 函式用於開啟乙個檔案,建立乙個 file 物件,相關的方法才可以呼叫它進行讀寫。寫入檔案時,不會自動加入換行,需要手動在末尾加入,在每個元素後面都換行n,可以用 fo.writelines line n for line in ...