我已經創建了一個批處理文件來配置車輛控制器上的多個設置。通常我使用專門構建的程序來完成配置,但在這種情況下,因爲有幾種配置需要自動執行此過程。 因此,我使用超級終端來捕獲從專用程序通過串行端口發送到控制器的每個配置的數據/命令。 然後我創建了一個批處理文件,其中包含用超級終端捕獲的數據/命令。當批處理文件運行時,它應該在車輛控制器上自動執行每個配置。批處理文件不適用於所有命令
我發現批處理文件可以用於某些配置,但不能用於其他配置。
例如下面的配置沒有問題:
以下是我在超級終端看到的。
這是來自超級終端的日誌。
這裏是批處理代碼與數據從超級日誌
@echo off
Echo Enter the # for your com port (typically 1)
set /p com=
@echo on
mode COM%com% BAUD=38400 PARITY=N DATA=8
set /p x="¾@gms: 0 /¾@ gms¡" <nul >\\.\COM%com%
timeout /t 1
set /p x="¾@gms: 0 /¾@ gms¡" <nul >\\.\COM%com%
timeout /t 2
pause
exit
這裏是運行命令
所以上面的命令運行良好後輸出。
但是,當我嘗試做如下配置它不工作:
以下是我在超級終端看到的。
這是來自超級終端的日誌。
這裏是批處理代碼從超級日誌
@echo off
Echo Enter the # for your com port (typically 1)
set /p com=
@echo on
mode COM%com% BAUD=38400 PARITY=N DATA=8
set /p x="¾@swav: 1«¾@ swav" <nul >\\.\COM%com%
timeout /t 1
set /p x="¾@swav: 1«¾@ swav" <nul >\\.\COM%com%
timeout /t 2
pause
exit
這裏的數據是運行命令
您可以在超級截圖中看到該數據開始一個新的生產線後的輸出。我認爲它在批處理文件命令中做了同樣的事情,結果它弄亂了命令。 有沒有一種方法可以調整我的批處理命令以補償「配置命令」開始一個新行?
我現在已經嘗試基於@foxidrive評論如下代碼:
@Echo Enter the # for your com port (typically 1)
set /p com=
mode COM%com% BAUD=38400 PARITY=N DATA=8
set /p "x=¾@swav: 1«¾@ swav"<nul >COM%com%
timeout /t 1
set /p "x=¾@swav: 1«¾@ swav"<nul >COM%com%
timeout /t 2
pause
exit
我得到以下輸出:
Enter the # for your com port (typically 1)
1
Status for device COM1:
-----------------------
Baud: 38400
Parity: None
Data Bits: 8
Stop Bits: 1
Timeout: ON
XON/XOFF: OFF
CTS handshaking: OFF
DSR handshaking: OFF
DSR sensitivity: OFF
DTR circuit: ON
RTS circuit: HANDSHAKE
►¥@¶☺swav: 1
所以命令仍無法正常完成。
任何想法?
@foxidrive我增加了結果到我上面的第一條評論(見實線後面)。該命令仍然失敗 - 你有任何其他建議嗎? – batchnewbie
您的設備可能啓用本地回顯。你可以向串行設備發出什麼簡單的ascii命令來證明它正在工作?一旦你確定設備正在接收你的命令,那麼你可以嘗試更奇特的命令字符串。您也可以嘗試'com%com%:'後面的':'來使用不同的COM端口使用模式。 – foxidrive
@foxidrive我可以確認我在第一篇文章中提到的第一個代碼在設備上正常工作。這是第二個存在問題的代碼。你對其他「奇特的命令串」有什麼建議?請注意我對批處理命令非常陌生,所以如果你能在你的評論中提供額外的細節,那將非常棒。 – batchnewbie