推 QQ29:歐 原來是空格阿 好傻 竟然沒想到 謝謝V大 09/06 00:12
※ 引述《liu2007 (薯)》之銘言:
: 它都讀的到123.txt了
: 而且也能幫我做我要的動作
: 為什麼最後不能刪除?
恕刪一堆東西....
: → VictorTom:"del \"C:\\Documents .... \\321.txt\"" 09/05 23:34
: → VictorTom:簡單的說把要del的完整路徑用雙引號""括起來試試:) 09/05 23:34
: 推 QQ29:樓上請教為啥要這樣做呀?? 我沒有刮起來也可以刪耶@@ 09/05 23:50
: 推 VictorTom:我有點懶, 直接回文騙P幣吧.... 09/05 23:59
我直接貼結果吧, 自己看一看應該就懂了....
================
C:\>cd "Documents and Settings\ABCD"
C:\Documents and Settings\ABCD>copy con test.txt
test....
^Z
複製了 1 個檔案。
C:\Documents and Settings\ABCD>cd\
==
C:\>del C:\Documents and Settings\ABCD\test.txt
系統找不到指定的路徑。
==
C:\>del "C:\Documents and Settings\ABCD\test.txt"
/* 註: delete 成功, 沒有錯誤訊息. */
================
問題在於, console下, 指令後面空格接的東西是它的參數....
多個空格, 是格開多個參數用的, 寫過main / argc / argv就知道....
而windows的user profile的路徑中間有空格....
你不用""括起來, 系統會認為空格後的是下一個參數....
而沒有辦法把C:\Documents and Settings\ABCD\test.txt當作是一個完整路徑....
所以要把完整路徑用""括起來, 這樣系統會把整串""裡的東西當作一個參數....
而你原本沒有括也可以, 應該是因為你的完整路徑裡沒有空白字元....
簡單的說, 用system()傳的參數, 就是你在console下直接下的指令:)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.132.174.98
※ 編輯: VictorTom 來自: 220.132.174.98 (09/06 00:09)