Yahoo Answers is shutting down on May 4th, 2021 (Eastern Time) and the Yahoo Answers website is now in read-only mode. There will be no changes to other Yahoo properties or services, or your Yahoo account. You can find more information about the Yahoo Answers shutdown and how to download your data on this help page.

Anonymous
Anonymous asked in 電腦與網際網路程式設計 · 1 decade ago

bat 相關語法發問

前幾日我開始研究 bat

Q1 bat keyin 指令是什麼呢??

像是

echo off

pause

copy /b 1111.jpg

1111.jpg 請問一下 我要怎麼寫 才可以讓使用者自行輸入文字?

Q2 請問一下 我明明就有 echo off 為什麼字碼還是顯示出來呢

他還是會寫說 找到檔案 並複製 或者無找到檔案

Q3 bat 可以寫出視窗介面嗎? ( 如果可以 有相關的範例可以給我看嗎? )

Q4 bat 可以輸出圖片在 ms-dos 的 黑框內嗎? ( 如果可以 有相關的範例可以給我看嗎? )

Q5 ms-dos 的 path 跟 unix 的 path 哪邊不一樣了?

抱歉 我還滿外行的 我只會一點點 php 想要學點 ms-dos cmd

因為之前用 linux 的 cmd 用的滿愉快的 所以才想嘗試看看

抱歉 滿外行的 敘述得不太清楚 請見諒 還請多多教導

1 Answer

Rating
  • 是我
    Lv 5
    1 decade ago
    Favorite Answer

    Q1 bat keyin 指令是什麼呢??

    請問一下 我要怎麼寫 才可以讓使用者自行輸入文字?

    echo off

    pause

    set /P FileName="請輸入檔案名稱: "

    copy /b 1111.jpg %FileName%

    Q2 請問一下 我明明就有 echo off 為什麼字碼還是顯示出來呢

    “echo off” 僅表示《不顯示所執行的指令》,而不影響執行指令的結果的顯示;若您連執行的正確、錯誤訊息都不想顯示出來,於指令末加上:

    >NUL 2>&1

    即可,以您的 copy 指令為例:

    copy /b 1111.jpg %FileName% >NUL 2>&1

    Q3 bat 可以寫出視窗介面嗎? ( 如果可以 有相關的範例可以給我看嗎? )

    純 bat 不行,但輔以第三方程式(不知有沒有)或您自己寫的程式則可行。或是叫用 WScript 產生非常簡易的視窗介面程式,如以下的 Sample.vbs 檔案內容:

    s = InputBox("請輸入文字")

    WScript.Echo "您輸入的是: " & s

    以指令 wscript //nologo Sample.vbs 執行之。

    Q4 bat 可以輸出圖片在 ms-dos 的 黑框內嗎? ( 如果可以 有相關的範例可以給我看嗎? )

    同上,需其他程式輔助,或您自己寫的程式(如以 C、Delphi、Java 等開發)聯結 gdi32.lib 或 gdi32.dll 則可行。

    Q5 ms-dos 的 path 跟 unix 的 path 哪邊不一樣了?

    dos:

    1. 檔名不區分大小寫

    2. 路徑分隔字元為 "\"

    3. 檔名不可含特殊字元如 "\", "/", ":", "*", "?", "<", ">", "|", 雙引號等

    4. 檔名不可以 "."、空白字元結尾,亦不能僅含空白字元

    5. 不可含系統保留裝置名稱如 CON, PRN, AUX, NUL 等

    6. 根目錄含磁碟代號,如 C:\

    7. "dir *.*" 或 "dir *" 可列出全部檔案(即 "dir *.*" 也可列出檔名為 "123" 的檔案)

    unix:

    1. 檔名分大小寫

    2. 路徑分隔字元為 "/"

    3. 檔名不可含特殊字元 "/" (沒啥限制)

    4. 根目錄為 "/"

    5. "ls *" 可列出全部檔案,但 "ls *.*" 僅列出檔名含 "." 的檔案(即 "ls *.*" 不會列出檔名為 "123" 的檔案)

Still have questions? Get your answers by asking now.