淺談命令提示字元 (cmd) 的切換目錄指令 (cd)

由於做作業時,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

2 意見:

JTR 2012年12月11日 凌晨1:22  

假Windows使用者XDDDD

hydai (PIatan) 2012年12月11日 凌晨2:06  

你錯了,我是DOS的愛用者(≧∇≦)

張貼留言

湖水偶然間遇上詩人的一片雲,而你因為機緣踏入這裡
何不留下一絲的吉光片羽呢?

關於我自己

在資訊工程走著的孩子,有太多的事情不懂,太多的東西想瞭解,一頭栽入無遠弗屆的世界!

搜尋此網誌

總網頁瀏覽量

技術提供:Blogger.