由於做作業時,TA 給的輸入指令不是很清楚,
在絕對路徑與相對路徑的執行上有些困惑,
因此留下這篇筆記。
範例輸入:
C:\Users\Peter\Desktop\test\bin\Debug\hw-6-1.exe input.txt
前面的那一串是絕對路徑,意味著直接指定到那個檔案作執行,
那後面的那個 input.txt 則是相對路徑,在目前檔案夾找到那個檔案,
所以如果你的 CMD 沒有切換到輸入檔放的資料夾,當然執行就會有問題了。
一個方法就是連輸入檔案都用絕對路徑
(比如說:這是放在我的桌面的檔案
C:\Users\Fred\Desktop\input.txt
這樣下去指定就沒有問題了!
不過又有人說,這樣的輸入並沒有符合輸出時的要求
(以6-1為例
Read from: input.txt
就會變成
Read from: C:\Users\Fred\Desktop\input.txt
這樣不是不合法嗎?
為了處理這個問題,我在此提出兩個方式,
第一、用 strtok 把 input.txt 前面的東西都處理掉
第二、切換執行目錄到 input.txt 所在的地方
於是在這裡針對第二個方式做簡介!!
先假設
1.執行檔案在 C:\Users\hydai\hw6-1.exe
2.輸入檔案在 C:\Users\hydai\Desktop\input.txt
不知道大家有沒有注意到打開 CMD 之後,
你要輸入的地方前面是不是有什麼東西呢?
/*以下是我的執行時的畫面
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\hydai>
*/
我們會在 > 後面的地方打東西(比如說指令之類的
> 前面的 C:\Users\hydai
就是目前的執行目錄,因此,在這個例子裡我可以直接打上 hw6-1.exe 就可以執行
(雖然說執行的結果是你找不到輸入檔案
所以這時候就要切換到 input.txt 所在的地方了!
對 CMD 而言,切換的指令叫做 cd
如果你直接打 cd ,那麼顯示出來的就會是你當前目錄的路徑
/*
C:\Users\hydai>cd
C:\Users\hydai
C:\Users\hydai>
*/
要切換到上一層,請使用 cd ..
/*
C:\Users\hydai>cd ..
C:\Users>
*/
切換進入目錄,可以先使用 dir 看一下執行目錄下有哪些資料夾你可以進入
請使用 cd "該資料夾名稱" 即可進入
/*
C:\Users>dir
Volume in drive C has no label.
Volume Serial Number is DC8B-655B
Directory of C:\Users
2012/11/04 23:22 <DIR> .
2012/11/04 23:22 <DIR> ..
2012/11/04 23:23 <DIR> hydai
2012/12/02 17:57 <DIR> Public
0 File(s) 0 bytes
4 Dir(s) 9,807,855,616 bytes free
C:\Users>cd hydai
C:\Users\hydai>
*/
接下來,你覺得這樣切換效率好像不太高嗎?
你可以直接喂它絕對路徑,一次切換到位
/*
C:\>cd C:\Users\hydai
C:\Users\hydai>
*/
最後了!如果你想要切換到別的硬碟( C -> D )
好像沒辦法直接用 cd 切換過去,沒錯!你還需要一個參數 /d
/*
C:\Users\hydai>cd /d D:
D:\>
*/
這樣大概就是全部了!
以下是 demo 我的例子~
/*
C:\Users\hydai>
C:\Users\hydai>cd Desktop
C:\Users\hydai\Desktop>C:\Users\hydai\hw6-1.exe input.txt
Read from: input.txt
The content of file:
http://www.google.com
C:\Users\hydai\Desktop>
*/
以上就是簡單的 Dos-cd指令介紹~
(下台一鞠躬
PIatan@2012-12-6 20:30
淺談命令提示字元 (cmd) 的切換目錄指令 (cd)
張貼者:
hydai (PIatan)
2012年12月6日 星期四
標籤: CMD
2 意見:
假Windows使用者XDDDD
你錯了,我是DOS的愛用者(≧∇≦)
張貼留言
湖水偶然間遇上詩人的一片雲,而你因為機緣踏入這裡
何不留下一絲的吉光片羽呢?