cmd命令行帶參啟動程序


cmd命令行帶參啟動程序

       有一些程序不支持被直接啟動,編寫代碼時,我們可以通過Process類來啟動某個進程(某個軟件),在不用代碼調從而啟動某個軟件時,windows系統下,通常我們會用到cmd命令行來啟動。本文將介紹 cmd常見的命令行啟動參數。

1.cmd幫助

  Win+R快捷打開運行窗口,輸入cmd確定打開cmd.exe程序。

  cmd幫助:打開 cmd窗口中輸入:cmd /?,回車。即可看到相應指令的含義。

2.cmd啟動參數

  使用cmd來啟動某個應用程序,並向應用程序傳入參數:

  下面的指令將使用cmd 間接啟動 E盤下的ExportBatchTool.exe程序,並給ExportBatchTool .exe 程序傳入C:\190627.whd的啟動參數:

  cmd /C E:\ExportBatchTool.exe C:\190627.whd

  /c 在執行完程序之后,cmd也會終止。

  命令:cmd /K E:\ExportBatchTool.exe C:\190627.whd同樣會啟動ExportBatchTool.exe程序並傳遞C:\190627.whd參數。

  但是,/k 在執行完程序之后,cmd.exe 依然會繼續運行,所以 /c 命令會更適用於自動化的腳本,而 /k命令則更適用於半自動化的腳本。

  Cmd窗口下,直接輸入:Start E:\ExportBatchTool.exe C:\190708.whd同樣會啟動ExportBatchTool.exe程序並傳遞C:\190627.whd參數。

  START含義:啟動單獨的窗口以運行指定的程序或命令。Cmd下輸入help命令即可查看相應指令含義。

3.參數傳遞注意事項

3.1多參數傳遞

  不管java編寫的還是C#寫的程序,其入口是program類中的main函數,此函數可以接收一個string[]類性的參數。所以,cmd參數傳遞只能傳遞字符串數組。那么數組元素怎么區分?cmd以一個空格來區分

  在上面例子中,路徑均不涉及空格,且只有一個。如果路徑中有空格的話,為避免將此空格用來區分元素,需用引號將包含該空格的元素(路徑)引起來,表示一個整體。但實際上,當你此時真給路徑加引號,會發現 cmd 就會不識別你的命令路徑。

  解決辦法

  在整個傳給 cmd的命令外層再加一層引號,如:

  cmd /c " "D:\test flo\test.exe" c:\6283.whd "。

3.2特殊字符傳遞

  在cmd幫助中已有詳細的解釋說明。現將部分摘錄如下,具體參考cmd幫助指令來查看特殊字符處理方式:

  如果字符串加有引號,可以接受用命令分隔符 “&&” 分隔多個命令。

  另外,由於兼容性 原因,/X 與 /E:ON 相同,/Y 與 /E:OFF 相同,且 /R 與 /C 相同。任何其他開關都將被忽略。

  如果指定了 /C 或 /K,則會將該開關之后的命令行的剩余部分作為一個命令行處理,其中,會使用下列邏輯 處理引號(")字符:

  1)如果符合下列所有條件,則會保留命令行上的引號字符:

    - 不帶 /S 開關;

    - 正好兩個引號字符;

    - 在兩個引號字符之間無任何特殊字符, 特殊字符指下列字符: &<>()@^|;

    - 在兩個引號字符之間至少有一個空格字符;

    - 在兩個引號字符之間的字符串是某個可執行文件的名稱。

  2)否則,老辦法是看第一個字符是否是引號字符,如果是,則去掉首字符並刪除命令行上最后一個引號,保留最后一個引號之后的所有文本。

---------

參考博客文章:https://blog.csdn.net/WPwalter/article/details/94128623


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM