A. 如何使用 AT 命令安排任務
您也可以使用 at 命令手動安排任務。本文介紹如何使用 at 命令創建和取消計劃任務。 AT 命令概述您可以使用 at 命令來安排命令、腳本或程序在指定的日期和時間運行。您也可以使用此命令查看現有的計劃任務。 要使用 at 命令,「任務計劃程序」服務必須在運行中,而且您必須以本地管理員組成員的身份登錄。使用 at 命令創建任務時,您必須對任務進行配置,使之在同一用戶帳戶下運行。 at 命令使用以下語法:at \\computername time /interactive | /every:date,.../next:date,... commandat \\computername id /delete | /delete/yes以下列表介紹可用於 at 命令的參數:\\computername:此參數用於指定遠程計算機。如果省略此參數,則任務將安排在本地計算機上運行。time:此參數用於指定運行任務的時間。時間是按 24 小時制的 hour:minutes 形式指定的。例如,0:00 代表午夜,20:30 代表晚上 8:30。/interactive:此參數用於允許任務運行時與處於登錄狀態的用戶的桌面進行交互。/every:date,...:此參數用於安排任務在指定的日期或在一周或一月內指定的一天或多天運行,例如每星期五或每月的第八天。將 date 指定為一周內的一天或多天(使用下面的縮寫形式:M、T、W、Th、F、S、Su)或一月內的一天或多天(使用數字 1 至 31)。多個日期項之間一定要用逗號隔開。如果省略此參數,則任務將安排在當天執行。/next:date,...:此參數用於安排任務在當天之後的某個時間運行(例如,下個星期一)。將 date 指定為一周內的一天或多天(使用下面的縮寫形式:M、T、W、Th、F、S、Su)或一月內的一天或多天(使用數字 1 至 31)。多個日期項之間一定要用逗號隔開。如果省略此參數,則任務將安排在當天執行。command:此參數用於指定要運行的 Windows 2000 命令、程序(.exe 或 .com 文件)或批處理程序(.bat 或 .cmd 文件)。如果該命令要求使用路徑作為參數,請使用絕對路徑名(以驅動器號開頭的完整路徑)。如果該命令位於遠程計算機上,請使用統一命名約定 (UNC) 路徑名(\\ServerName\ShareName)。如果該命令不是可執行 (.exe) 文件,必須在命令前面添加 cmd /c,例如,cmd /c C:\*.* C:\temp。id:此參數用於指定分配給計劃任務的標識號。/delete:此參數用於取消計劃任務。如果省略 id 參數,則將取消計算機上的所有計劃任務。/yes:此參數用於強制對取消計劃任務時系統發出的所有查詢回答「是」。如果省略此參數,系統將提示您確認對任務的刪除。注意:使用 at 命令時,計劃任務是通過使用系統帳戶憑據來運行的。如何創建計劃任務 單擊開始,指向程序,指向附件,然後單擊命令提示符。 在命令提示符下,鍵入下面一行,然後按 Enter 顯示當前運行的服務的列表:
net start 如果「任務計劃程序」未顯示在列表中,則請鍵入下面一行,然後按 Enter:
net start "task scheler" 在命令提示符下,鍵入下面一行(使用與您的情況相符的參數),然後按 Enter:
at \\computername time /interactive | /every:date,.../next:date,... command示例 要想在午夜將「Documents」文件夾中的所有文件復制到「MyDocs」文件夾中,請鍵入下面一行,然後按 Enter:
at 00:00 cmd /c C:\Documents\*.* C:\MyDocs 要想在每個工作日晚上 11:00 備份「Procts」伺服器,請創建包含備份命令的批處理文件(例如 Backup.bat),鍵入下面一行,然後按 Enter 安排該備份任務:
at \\procts 23:00 /every:M,T,W,Th,F backup 要想安排 net share 命令上午 6:00 在「Sales」伺服器上運行,並將列表重定向到「Corp」伺服器上的共享文件夾「Reports」中的「Sales.txt」文件,請鍵入下面一行,然後按 Enter:
net start 如果「任務計劃程序」未顯示在列表中,則請鍵入下面一行,然後按 Enter:
net start "task scheler" 在命令提示符下,鍵入下面一行(使用與您的情況相符的參數),然後按 Enter:
at \\computername id /delete | /delete/yes示例 要取消在本地計算機上安排的所有任務,請鍵入 at /delete,然後按 Enter。 要取消名為「MyServer」的計算機上的 ID 為 8 的任務,請鍵入 at \\MyServer 8 /delete,然後按 Enter。如何查看計劃任務要查看通過使用 at 命令創建的任務,請按照下列步驟操作: 單擊開始,指向程序,指向附件,然後單擊命令提示符。 在命令提示符下,鍵入下面一行,然後按 Enter 顯示當前運行的服務的列表:
net start 如果「任務計劃程序」未顯示在列表中,則請鍵入下面一行,然後按 Enter:
net start "task scheler" 在命令提示符下,執行下列步驟之一: 要查看通過使用 at 命令安排的任務的列表,請鍵入下面一行,然後按 Enter:
at \\computername - 或 - 要查看特定的計劃任務,請鍵入下面一行,然後按 Enter:
at \\computername id示例 要查看本地計算機上的所有計劃任務,請鍵入 at,然後按 Enter。 要查看名為「Support」計算機上的所有計劃任務,請鍵入 at \support,然後按 Enter。 要查看本地計算機上 ID 為 18 的任務,請鍵入 at 18,然後按 Enter。疑難解答 當您鍵入 at \\computername 以查看計劃任務列表時,使用 at 命令創建的某些(或全部)計劃任務沒有列出。 使用at 命令創建任務後,如果在「計劃任務」文件夾中修改了任務,則可能會發生此問題。當您使用 at 命令安排任務時,該任務顯示在「控制面板」中的「計劃任務」文件夾中。您可以查看或修改任務。但是,如果修改了任務,當您使用 at 命令時,將無法查看任務。 要解決此問題,請在「控制面板」中的「任務計劃」文件夾中查看或修改該任務。有關此現象的其他信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
220149 無法使用任務計劃程序工具查看 AT 任務 當您使用 at 命令安排任務時,該任務在指定的時間或日期不運行。 如果滿足下列任一條件,就會發生這種現象: 該命令的語法不正確。 安排任務後,請鍵入 at \\computername 以確認語法正確。如果命令行下顯示的信息不正確,請取消該任務,然後重新創建它。 - 或 - 您安排的任務運行的命令不是 .exe 文件。 at 命令在運行命令之前不自動載入 cmd(命令解釋器)。
B. Windows XP中內置AT命令的使用
AT命令是Windows XP中內置的命令,它也可以媲美Windows中的「計劃任務」,而且在計劃的安排、任務的管理、工作事務的處理方面,AT命令具有更強大更神通的功能。AT命令可在指定時間和日期、在指定計算機上運行命令和程序。
我們可以在「開始→運行」中輸入AT命令,下面就來看看AT命令的一些實例分析。
1、定時關機
命令:at 21:00 ShutDown –S –T30
該命令運行後,到了21:00點,電腦會出現「系統關機」對話框,並默認30秒延時自動關機。
2、定時提醒
命令:at 12:00 Net Send 10.10.36
.122與朋友約會的時間到了,快點准備出發吧!
其中Net Send是Windows內部程序,可以發送消息到網路上的其他用戶、計算機。10.10.36.122是本機電腦的IP地址。這個功能在Windows中也稱作「信使服務」。
3、自動運行批處理文件
如果公司的數據佷重要,要求在指定的'日期/時間進行備份,那麼運行:
命令:at 1:00AM /Every:Saturday My_BackUp.bat
這樣,在每個Saturday(周六)的早上1:00點,電腦定時啟動My_BackUp.bat批處理文件。My_BackUp.bat是一個你自行編制的批處理文件,它包含能對系統進行數據完全備份的多條命令。
4、取消已經安排的計劃
命令:at 5 /Delete
有時候,你已經安排好的計劃可能臨時變動,這樣你可以及時地用上述命令刪除該計劃(5為指派給已計劃命令的標識編號),當然,刪除該計劃後,可以重新安排。
C. 詳細介紹下at命令怎麼用
AT命令集的描述
符號 * 表明該命令的設置可用AT&Wn命令存於兩個用戶方案中的一個
A/ 重執行命令
重執行前一AT命令行,主要用於連接時占線,無應答或號碼錯誤。這一命令必須單獨構成一命令行並由"/"字元結束,(<Enter> 不能用於結束命令)。
+++ 退出字元 預設:+
切換數據機從在線狀態到命令狀態,而不會中斷數據連接。可以通過改變S寄存器S2的值來改變這一字元。
AT=x 寫入被選的S寄存器
這一命令將數值x寫入當前被選的S寄存器,一個S寄存器可由ATSn命令選擇,若 x 是一個數字,所有S 寄存器將返回 OK 響應。
AT? 讀被選的S寄存器
這一命令讀並且顯示被選的S寄存器的內容。一個S寄存器可由ATSn命令選擇。
ATA 應答
它必須是命令行中的最後一條指令。數據機在應答方式下繼續執行連接程序。在與遠端數據機交換載波後進入連接狀態,如果在由寄存器S7規定的時間內(預設值=50秒)沒有檢測到載波, 數據機將掛機。在連接過程中,通過DTE輸入的任何一個字母都將中斷這一命令。
ATBn* 選擇ITU-T或Bell模式 預設=0
ATB0 選擇在1200和300bps速率下通訊的ITU-T V.22和V.21協議
ATB1 選擇在1200和300bps速率下通訊的Bell 212A和103協議
ATCn 載波控制預設=1
包含這一命令只是為了保證兼容性,執行號只是返回一結果碼而沒有其它作用。
ATC1 正常傳輸載波切換
ATDn 撥號
它必須是命令行中的最後一條指令, ATD命令使數據機摘機後, 根據輸入的參數撥號,以建立連接。
如果不帶參數,數據機摘機後,不撥號進入發起方式。
使用標點可使命令更易讀懂。圓括弧,連字元和空格符會被忽略。拔號命令行中如果出現了非法字元,則該字元及其後的內容將被忽略。數據機允許的撥號命令長度為36個字元。
參數:0-9 A B C D * # L P T R ! @ W , ; ^ S=n
0-9 DTMF 符號0到9
A-D DTMF 符號A,B,C和D。在一些國家中不使用這些符號
* "星"號(僅用於音頻撥號)
# "#"號(僅用於音頻撥號)
J 為本次呼叫執行在可提供的最高速率下的MNP10鏈路協商(可選)
K 使本次呼叫MNP10鏈路協商期間電源電平可調(可選)
L 重撥上一次撥過的號碼
P 脈沖撥號
T 雙音頻撥號
R 逆叫方式。允許數據機使用應答方式呼叫只能作為發起使用的調制解調 器, 必須作為命令行中的最後一個字元輸入。
! 使數據機按照S29中規定的值掛機一段時間再摘機。
@ 使數據機等待5秒鍾的無聲回答
w 按照寄存器S7中規定的時間,在撥號前等待撥號音。
, 在撥號過程中,按照寄存器S8中規定的時間,暫停
; 撥號後返回命令狀態
^ 打開呼叫音
() 被忽視,用於格式化號碼串
- 被忽視,用於格式化號碼串
<space> 被忽視,用於格式化號碼串
S=n 用AT&Zn 命令存在地址n處的號碼撥號
ATE* 命令回應 預設:1
ATE0 關閉命令回應
ATE1 打開 命令回應
ATHn 摘掛機控制 預設:0
ATH0 使數據機掛機
ATH1 當數據機處於掛機狀態,使數據機摘機,返回響 OK,等待進一步的命令。
ATIn 識別
I0 報告產品代碼
I1 報告ROM中預先計算的校驗和
I2 計算校驗和並與ROM中的校驗和比較,返回"OK"或"ERROR"結果碼
I3 報告固件修正
I4 報告OEM定義的識別串
I5 報告國家代碼參數
I6 報告固件修正
I7 報告數據機數據泵類型
ATLn* 揚聲器音量 預設:2
ATL0 揚聲器低音量
ATL1 揚聲器低音量
ATL2 揚聲器中音量
ATL3 揚聲器高音量
ATMn* 揚聲器控制 預設:1
ATM0 關閉揚聲器
ATM1 揚聲器在呼叫建立握手階段打開至檢測到來自於遠端數據機的載波後關閉
ATM2 揚聲器持續開
ATM3 揚聲器在應答期間打開。當檢測到來自於遠端的數據機的載波和撥號時關閉
ATNn* 調制握手 預設:1
ATN0 要求數據機S37選擇連接速率,若S37=0,則連接速率必須與發出的上一條AT命令的速率相匹配。如果所選擇的速率可用不止一個通訊標准實現(如Bell212A或ITU-T V.22 速率在 1200bps)數據機同時參考ATB 命令選擇。
ATN1 允許時使用雙方數據機都支持的任一速率握手,使能夠自動檢測。在這一方式下,ATB命令被忽視,數據機只用ITU-T方式連接。
ATOn 進入數據在現狀態 預設:0
ATO0 使數據機從命令在現狀態直接返回數據在線狀態,不經過自動均衡。
ATO1 使數據機從命令在現狀態返回數據在狀態,經過自動均衡。
ATP* 設脈沖撥號為預設
ATQn* 結果碼顯示 預設:0
ATQ0 數據機向DTE發送結果碼
ATQ1 禁止數據機向DTE發送結果碼
參閱數據機結果碼一節的詳細說明
ATSn 設S寄存器n為預設寄存器
ATSn? 讀S寄存器
讀S寄存器中的內容,所有的S寄存器都可以讀
ATSn=x 寫入S寄存器
將 x值寫入指定的S寄存器n
ATT* 設音頻拔號為預設
ATVn* 結束碼類型 (消息控制) 預設:1
ATV0 發送短型 (數字型) 結果碼
ATV1 發送長型 (字元型) 結果碼
ATWn* 協商進程報告 預設:0
ATW0 不報告糾錯呼叫進程
ATW1 報告糾錯呼叫進程
ATW2 不報告糾錯呼叫進程,CONNECT xxxx指示DCE速率。
ATXn* 擴展結果碼 預設:4
ATX0 數據機忽視撥號音和忙音。當由盲撥建立連接時,發送CONNECT信息。
ATX1 數據機忽視撥號音和忙音。當由盲撥建立連接時,CONNECT XXXX 反映的是比特速率
ATX2 數據機忽視忙音,但在撥號前等待撥號音,如果5秒鍾內檢測不到撥號音,則發送NO DIAL TONE 信息,連接建立後 發送 CONNECT xxxx反映比特速率。
ATX3 數據機忽視撥號音,若檢測到忙音,發送BUSY信息,當由盲撥建立起連接時, CONNECT XXXX 反映的是比特速率。
ATX4 如果5秒鍾內檢測不到撥號音,發送NO DIAL TONE 訊息,檢測到忙音, 發送BUSY信息。連接建立後發送CONNECT XXXX 反映比特速率。
D. linux中at命令
at命令
at:計劃任務,在特定的時間執行某項工作,在特定的時間執行一次。
格式:at+時間
例1:date //查看系統當前時間
at 時間 //系統計劃啟動任務時間
at> date >/root/1.txt //date:系統計劃啟動任務時間執行date命令;/root/1.txt執行命令寫入位
置和文件
ctrl+d退出 //退出at命令
例2:date //查看系統當前時間
at 時間 //系統計劃啟動任務時間
at> init 0 /root/2.txt //init 0:系統計劃啟動任務時間執行init 0(關機)命令;/root/2.txt執
行命令寫入位置和文件
例3:在固定時間內添加一個用戶(這時建立的用戶沒有密碼)
#at 12:00(時間) //at命令設定12:00執行一項操作
at>useradd aaa //在at命令里設定添加用戶aaa
ctrl+d //退出at命令
tail -f /etc/passwd //查看/etc/passwd文件後十行是否增加了一個用戶aaa
計劃任務結束後,查看任務是否寫入文件中,可以用cat或vi命令查看。
格式:cat(vi)+(路徑)文件名
例1:cat(vi) 1.txt
日 2月 6 09:21:28 CST 2005
計劃任務設定後,在沒有執行之前我們可以用atq命令來查看系統沒有執行工作任務。
格式:atq
例:atq
1 2005-02-06 09:23 a root
啟動計劃任務後,如果不想啟動設定好的計劃任務可以使用atrm命令刪除。
格式:atrm+任務號
例:atrm 1 //刪除計劃任務1
atq //查看計劃任務是否刪除
還可以進入到/var/spool/at目錄里把計劃任務刪除,計劃任務的文件都保存在該目錄里,可以用rm -f
文件名來刪除(以文件的形式刪除計劃任務,因為計劃任務是以文件形式保存在該目錄中)
例:#cd /var/spool/at //進入到/var/spool/at目錄中
ls //顯示目錄中所有文件
rm -f a0000a0119b0df //刪除計劃任務
在通常情況下,超級用戶都可以使用這個命令。對於其他用戶來說,能否可以使用就取決於兩個文
件:/etc/at.allow和/etc/at.deny。
當「用戶名」寫入/etc/at.deny中,用戶不能執行at命令(管理員限制用戶使用at命令)。
例:useradd text //新建一個text用戶
ls /etc/at.deny //查看at.deny文件內容
vi /etc/at.deny //對at.deny文件進行編輯
text //對at.deny文件進行編輯,寫入text用戶名,進行at命令限制,然後wq(保存退出)
cat /etc/at.deny //顯示at.deny文件內容
su - text //切換到text用戶
at 12:00 //text用戶執行at命令,如果被限制則出現下面的提示。
You do not have permission to use at.你不允許使用at這個命令
at.allow比at.deny優先順序高
at.allow文件中有的用戶可以執行at,沒有則不能。
linux操作系統在執行用戶是否可以執行at命令時,先看at.allow文件沒有才看at.deny文件。
注意:linux操作系統默認沒有/etc/at.allow文件。
例:ls /etc/at.allow //查看是否已經建立at.allow文件
touch /etc/at.allow //建立/etc/at.allow文件
vi /etc/at.allow //對at.allow文件進行編輯
text //對at.allow文件進行編輯,寫入text用戶名,該用戶名可以執行at命令,然後wq(保存退出)。
su - text //切換到text用戶
at 12:00 //text用戶執行at命令,若不出現上面所說的提示就可以進行at命令設定了。
at命令格式
at HH:MM YYYY-MM-DD //HH(小時):MM(分鍾) YYYY(年)-MM(月份)-DD(日)
例:at 4:00 2004-11-27
HH[am pm]+D(天) days //HH(小時)[am(上午)pm(下午)]+days(天)
例:4pm + 3days :3天以後下午4:00執行at命令設定的計劃任務。
E. AT命令的AT命令集
AT 即Attention,AT指令集是從終端設備(Terminal Equipment,TE)或數據終端設備(Data Terminal Equipment,DTE)向終端適配器(Terminal Adapter, TA)或數據電路終端設備(Data Circuit Terminal Equipment,DCE)發送的。通過TA,TE發送AT指令來控制移動台(Mobile Station,MS)的功能,與GSM 網路業務進行交互。用戶可以通過AT指令進行呼叫、簡訊、電話本、數據業務、傳真等方面的控制。90年代初,AT指令僅被用於Modem操作。沒有控制行動電話文本消息的先例,只開發了一種叫SMS BlockMode的協議,通過終端設備(TE)或電腦來完全控制。由Hayes公司發明,已成為事實上的標准並被所有數據機製造商採用的一個數據機命令語言。每條命令以字母AT開頭,因而得名。AT後跟字母和數字表明具體的功能。 SMS。之後,主要的行動電話生產廠商諾基亞、愛立信、摩托羅拉和HP共同為GSM研製了一整套AT指令,其中就包括對SMS的控制。AT指令在此基礎上演化並被加入GSM07.05標准以及的GSM07.07標准,完全標准化和比較健全的標准。如:對SMS的控制共有3種實現途徑:最初的BlockMode;基於AT指令的TextMode;基於AT指令的PDUMode。到PDUMode已經取代BlockMode,後者逐漸淡出。GSM模塊與計算機之間的通信協議是一些AT指令集,AT指令是以AT作首,字元結束的字元串,AT指令的響應數據包在中。每個指令執行成功與否都有相應的返回。其他的一些非預期的信息(如有人撥號進來、線路無信號等),模塊將有對應的一些信息提示,接收端可做相應的處理。 互聯網剛出現時,人們都是用modem來進行連接。modem通常是在電話線兩端,由一個modem開始連接並結束操作。無論modem是「發起」還是「應答」模式,數據傳輸的兩套頻率之間的手動切換,一般由發出呼叫的用戶將其modem切換為「發起」,然後手動撥打號碼。當遠程modem應答時,應已經設置為「應答」模式,電話聽筒被關閉,通信一直持續到呼叫方手動斷開。
當需要自動化時,通常只需要在應答方 - 例如,一家銀行可能需要從支行號碼呼入以結束日常處理。為了填補這一角色,某些modem包含了當其在應答模式時的自動摘機功能,其他用戶手動斷開時的清線功能。需要進行自動呼出撥號的情況相當少,並且是通過一個單獨的外圍設備—一個「撥號器」來處理的。這通常插是在電腦上的一個單獨的輸入/輸出埠(通常是一個RS-232埠)並需要modem本身單獨編程。
這種操作方法在20世紀60年代和70年代初工作的很好,當時modem通常被用來連接終端設備如電腦(撥出)或智能電腦主機(應答)。然而,20世紀70年代的微型計算機革命導致了低成本modem的引入並使這個半專用的點對點連接的想法已不在適用。成千上萬的潛在用戶可能要撥打任意的其他數千名用戶,並且在當時唯一的解決辦法就是讓用戶手動撥號。
計算機行業需要一種方式來告訴modem通過軟體來撥什麼號。較早的單獨撥號器有這個功能,但它只能使用一個單獨的埠,而微型計算機可能沒有。另一種解決辦法是使用一個單獨的一套「命令引腳」專門用於發送和接收命令,另一套可以使用一個信號引腳指示modem應該將收到的數據解釋為命令。這些都在RS-232標准有硬體支持。然而,微機的RS-232埠的許多實現都是非常基本的,並且為了節約成本而消除了很多引腳。 賀氏通訊在1981年推出了其通過沒有修改而重新使用現有的數據引腳的Smartmodem解決方案。 而且,modem本身可以在兩種模式之間進行切換:
1,modem發送數據到遠程modem時的數據模式。(在數據模式中,modem把它從計算機接收的任何東西作為數據通過電話線發送出去)。
2,數據被解釋為命令而給本地modem的命令模式(本地modem應執行的命令)。
從數據模式切換到命令模式,會話發出3個加號的轉義序列字元串(「+++」)並跟隨一秒鍾的暫停。轉義序列結束後的暫停是必須的,以減少入站信號所造成的問題:如果三個加號接收後的1秒內接收到任何其他數據,它就不是轉義序列並將作為數據發送。要切換回去,他們發送聯機命令,O。在實際使用中許多命令在完成後自動切換到在線模式,而對於用戶來說很少使用在線命令。
為了避免賀氏的專利授權,一些廠商實施的轉義序列沒有時間間隔保護(TIES)。這里有一個主要的影響是拒絕服務安全,它會導致計算機嘗試在數據模式中發送位元組序列「+++ATH0」時使modem掛斷連接。對於通過這種modem連接到Internet的任何計算機,這可以很容易地被通過發送包含「+++ATH0」有效載荷序列的死亡請求ping所利用。計算機操作系統會自動嘗試用相同的有效載荷回復發件人,modem會將ICMP數據包的有效載荷數據解釋作為賀氏命令而立即將自身從互聯網斷開。同樣的錯誤也可能會觸發,如,計算機用戶試圖發送包含上述字元串的電子郵件。 賀氏命令集包括各種電話線操作命令,如撥號和掛斷。它還包括用來modem設置的各種控制,包括一組寄存器指令集,允許用戶在原來的賀氏modem上直接設置各種內存位置。該指令集的其中相當一部分在很大程度上幾乎被所有早期300波特modem製造商一字不差的進行了復制,包括寄存器的含義。
1200和2400波特的擴展需要一套小的新命令集,它們中一部分用(「&」)前綴來表示支持新的功能。賀氏自身被迫在它們的1200後不久迅速推出一個2400波特模型,而作為一個省時的辦法,該命令集跟1200是相同的。基本上是偶然的,這使得現有的1200波特率modem用戶使用新的賀氏2400模型時無需改變他們的軟體,這強化了賀氏版本命令的使用。數年後,TIA/EIA將2400波特率命令集成為一個正式的標准,標題為:數據傳輸系統和設備-串列非同步自動撥號和控制,TIA / EIA-602。
然而賀氏移動通信在高速應用或壓縮的使用上進展緩慢,而其它三家公司則開始領先 - Microcom,U.S. Robotics 和 Telebit。這三個公司使用自己的擴展命令集,而不是等待賀氏。到了90年代初期,共有四個主要命令集在使用,以及基於其中之一的一些版本。20世紀90年代初,隨著14.4和28.8 kbit/s的的廣泛引入事情再次變得簡單。慢慢地,基於原賀氏命令集使用「&」擴展的命令集開始流行,然後變得普遍。只有另外一個命令集一直流行:US Robotics modem命令集。 以下文字列出了部分賀氏命令集(也叫AT命令:AT 意思是注意)。
賀氏命令可分為四組:
1.基本命令集—一個大寫字母緊跟一個數字。如:M1。
2.擴展命令集—一個「&」(and符號)和大寫字母緊跟一個數字。它是基本命令集的擴展。如:&M1。注意:M1和&M1是不同的。
3.專有命令集—通常使用一個反斜杠(「」)或者是百分號(「%」)開頭;這些命令在各modem廠商間差異很大。
4.寄存器命令—Sr=n。這里r是要改變的寄存器編號,n是要賦予的新值。
寄存器代表內存中的指定位置。Modem在主板上有一些少量的內存。第四組命令的目的是為了輸入值到一個特定的寄存器(內存位置)。該寄存器將存儲一個modem和通信軟體可以利用的特定變數(字母數字信息)。例如,S7 = 60指示計算機「設置寄存器#7的值為60」。
雖然指令集語法的大多數命令由字母數字組合(L0,L1等)定義,零則是可選使用的。本例中,「L0」等同於普通的「L」。閱讀下表時要記住這一點。
數據模式下,轉義序列可將modem返回到命令模式。正常的轉義序列是三個加號(「+++」),並為將它跟可能的真實數據消除歧義:它的前面必須有一個停頓,加號之間沒有任何停頓,並緊跟一個暫停;默認情況下,「暫停」是一秒鍾,「不停頓」則是更少。 以下語法定義: <CR>回車符,是在命令行和結果代碼終止符,其值是0到255之間的十進制ASCII碼,在參數S3中指定。默認值為13。 <LF>換行字元,是公認的換行符的字元。它的值介於十進制ASCII碼的0到255之間,在參數S4中指定。默認值為10。除非使用詳細結果代碼(使用V1選項)否則換行符在回車符之後輸出,如果使用了數字格式結果代碼(使用V0選項),它不會出現在結果代碼中。 <...>尖括弧內名稱是語法元素。尖括弧不會出現在命令行中。 [...]方括弧內是命令的可選子參數或AT信息響應的可選部分。括弧本身不會出現在命令行中。當讀取AT命令時沒有給出子參數,新值是其先前的值。在AT命令中不存儲任何子參數的值,所以沒有讀命令,也即所謂的輸入動作命令,輸入應在子參數建議的默認設置的基礎上進行。 modem初始化
其他用法,見向量初始化。
一個字元串可以包含放在一起的許多賀氏命令,從而使modem以最佳方式准備撥號或接聽,如AT&F&D2&C1S0 = 0X4。這就是所謂的初始化字元串。V.250規范要求所有的DCE接受至少40個字元的級聯命令主體(在「AT」之後)。 以前的賀氏命令集在基於modem的通信中所代表了巨大的飛躍,隨著時間的推移,許多問題開始出現,但幾乎沒有是因為貨氏本身引起的: 由於缺乏書面的標准,其他的modem製造商抄襲了外部可見的命令和(大致的)基本命令。這導致了modem在如何改變狀態時的各種各樣的微妙的差別,以及他們如何處理錯誤條件,掛起和超時。 每個製造商傾向於增加新的命令來處理新出現的需求,經常與其他modem不兼容。
例如,設置硬體或軟體握手往往需要為不同的modem設置許多不同命令。這破壞了基本「AT」命令集的普遍方便性。 許多「賀氏兼容」modem具有它們不兼容的嚴重怪癖。例如,許多modem接收到「AT Z」重置命令後需要幾秒鍾的暫停。一些modem需要命令之間有空格,有的則不需要。有些會因為自己的「意志」改變波特率而幫倒忙,這將使得電腦不知道如何處理傳入位。 由於這些結果,最終許多通信方案不得不放棄了任何能跟所有的「賀氏兼容」modem交談的想法,而不得不嘗試使用程序從響應來確定modem的類型,或提供給用戶一些辦法,使他們能夠輸入隨便什麼特殊命令以強迫他們的特殊modem正確行事。 下面的命令是幾乎所有的modem支持的AT命令集,無論是舊新。 命令 描述 備注 A0 or A 回應呼入呼叫 A/ 重復最後命令 不要使用AT前綴,不要跟回車符。回車符通常表示中止。 D 撥號 撥後面的號碼並握手
P—脈沖撥號
T—撥號音撥號
W—等待下一個撥號音。
R—撥號後的反響回應模式。
@—為二次撥號等待30秒。
,—在S8寄存器暫停指定時間(通常2秒)。
;—撥號後保持命令模式。
!- 閃光燈開關掛機(掛斷了半秒,再轉接電話。)
L—撥最後一次號碼 E0 或 E 無回顯 不會回顯命令到計算機。 E1 回顯 回顯命令道計算機(這樣一個人可以看到另一個人的輸入)。 H0 掛鉤狀態 掛鉤中掛斷電話,結束過程中的任何呼叫。 H1 掛鉤狀態 掛鉤結束摘起電話線(通常會聽到撥號音)。 I0 toI9 調查、信息或訊問 該命令返回有關模型的信息,比如它的固件或品牌名稱。每一個數字(0〜9,有時是10或以上)返回一行modem的具體信息,或如果沒有定義返回「ERROR」。今天,Windows使用即插即用檢測專用modem的類型。 L0 orLn (n=1 to 3) 揚聲器音量。只被某些modem支持,通常擴展支持。modem很少有揚聲器,或者有物理音量控制,或者聲音輸出是通過音效卡的不支持此命令。 關閉或降低音量 M0 or M 喇叭關閉,撥號時無聲 M3也很常見,但很多品牌不同 M1 遠程載波檢測揚聲器(即直到被其他modem聽到) M2 揚聲器始終打開(連接後聽到數據聲音) O 返回在線 由「+++」轉義代碼被中斷後返回modem到正常連接狀態。 Q0 or Q 安靜模式 關閉 - 顯示結果碼,用戶會看到命令響應(如OK) Q1 安靜模式 打開 - 結果代碼被抑制,用戶不會看到響應。 Sn 選擇當前寄存器
需要注意的是Sn,?和=r實際上是三個單獨的命令,並且可以在單獨的AT命令中給予。 選擇寄存器n作為當前寄存器 Sn? 選擇寄存器n作為當前寄存器,並查詢它的值。使用?對自己查詢而不管最近選擇了那個寄存器。 Sn=r 選擇寄存器n作為當前寄存器,並在其中存儲r。使用=?對自己存儲而不管最近選擇了那個寄存器。 V0 or V 數字結果代碼 V1 詳細 英文結果代碼(例如CONNECT BUSY,NO CARRIER等) X0 or X 賀氏Smartmodem 300兼容的結果代碼 X1 Smartmodem 通常增加連接速度到基本結果代碼(如CONNECT 1200) X2 通常添加了撥號音檢測(防止盲目撥號,有時防止ATO) X3 通常增加忙音檢測。 X4 通常添加忙音和撥號音檢測 Z0 or Z 復位modem存儲的配置。對於多個配置文件使用Z0,Z1etc。這是跟沒有NVRAM的modem(非易失性存儲器)一樣的出場配置&F。 重置 註:一個命令字元串由一個CR(
)字元決定 寄存器 描述 范圍 預設值 S0 自動應答前的振鈴次數 0-0從不 0 S1 振鈴計數器 0-255振鈴次數 0 S2 轉義字元 0–255, 十進制ASCII碼 43 (+) S3 負載返回字元 0-127, 十進制ASCII碼 13 (負載返回) S4 換行符 0-127, 十進制ASCII碼 10 (換行) S5 退格符 0-32, 十進制ASCII碼 8(退格) S6 盲撥前的等待時間 2–255秒 2 S7 撥號後等待負載 1–255秒 50 S8 停頓時間(撥號等待) 0–255秒 2 S9 負載檢測回應時間 1–255個十分之一秒 6(0.6秒) S10 負載丟失和掛斷之間的延遲 1–255個十分之一秒 14(1.4秒) S11 DTMF撥號持續 50–255毫秒 95毫秒 S12 取消代碼守衛時間 0–255 個五十分之一秒 50(1秒) S18 測試定時器 0–255秒 0秒 S25 DTR延遲 0–255(同步模式時為秒,其他模式是百分之一秒) 5 S26 RTS到CTS延遲間隔 0–255個百分之一秒 1個百分之一秒 S30 不活動連接定時器 0–255個十分之一秒 0(禁止) S37 所需的電信線路速度 0–10
命令選項:
· 0嘗試自動連接模式
· 1嘗試使用300bit/s的連接速度
· 2嘗試使用300bit/s的連接速度
· 3嘗試使用300bit/s的連接速度
· 5嘗試使用1200bit/s的連接速度
· 6嘗試使用2400bit/s的連接速度
· 7嘗試使用V.23 75/1200模式
· 8嘗試使用9600bit/s的連接速度
· 9嘗試使用12000bit/s的連接速度
· 10嘗試使用14400bit/s的連接速度 S38 強制斷開連接前的延遲 0–255秒 20秒 ETSI GSM 07.07(3GPP TS 27.007)規定的AT命令式控制GSM手機或modem。ETSI GSM 07.05(3GPP TS 27.005)規定的AT命令式管理GSM的SMS簡訊功能。
GSM的命令示例: 命令 描述 AT+CPIN=1234 輸入PIN 碼 AT+CPWD=SC,old,new 將「舊的」PIN碼「新的」 AT+CLCK=SC,0,1234 刪除PIN碼 AT&V 狀態 ATI 狀態(製造商,型號,版本,IMEI功能) AT+COPS=? 列出可用的網路0-Unknown/2-Current/3-Forbidden,LONGNAME,SHORTNAME,數值-ID,「ACT」 AT+CSQ 得到的信號強度。應答+CSQ:<rssi(more=better)>,<ber, less=better> ATD*99# 撥號接入點 AT+CGDCONT=1,IP,access.point.name 定義PDP上下文 GSM/3G medom通常支持ETSI GSM 07.07/3GPP TS 27.007 AT指令集擴展,盡管有很多命令執行有所不同。
大多數USB modem廠商,如華為,Sierra Wireless,Option,還定義了專有無線模式選擇擴展(GSM/3G偏好)或類似擴展。因為性能的原因,某些最新的高速modem提供了一個虛擬乙太網介面而不是使用PPP連接,(PPP連接只在計算機和modem之間而不通過網路使用)。該設置需要供應商的AT命令擴展。有時候這些特定擴展規范是公開,而其他時候供應商則要求有一個NDA才能訪問它們。