看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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)
QQ29:歐 原來是空格阿 好傻 竟然沒想到 謝謝V大 09/06 00:12