批处理编程相关资料

㈠for 基本用法

for %%变量名 in (集合) do 要执行的命令

㈡for 带参用法 (四个参数)

①FOR /D %%变量名 IN (集合) DO 命令                  D即Directory目录的意思,如for /d %%i in (c:\*) do echo %%i       这条命令的意思就是只显示c盘下面目录,因为加了D参数,所以只显示目录
②FOR /R 命令工作路径 %%变量名 IN (集合) DO 命令       R即是Route路径的意思,如for /r c:\ %%i in(*.dll) do echo %%i 则一层一层将c盘下面所有dl文件显示出来
③FOR /L %%变量名 IN (起点,幅度,终点) DO 命令                   L即是LOOP,循环的意思
④ a.FOR /F [“设置”] %%变量 IN (要处理的文件) DO 命令
b.FOR /F [“设置”] %%变量 IN (“要处理的字符串”) DO 命令
c.FOR /F [“设置”] %%变量 IN (‘要处理的dos命令’) DO 命令

设置:①eol=单个字符   —–单个字符 注释作用
②skip=要跳过的行数
③delims=分隔符a分隔符b……
④tokens=要取的值所在的列数号
⑤usebackq

㈢for变量的扩展 (扩展符号“~”)

%~I – 删除任何引号(“),扩充 %I
%~fI – 将 %I 扩充到一个完全合格的路径名
%~dI – 仅将 %I 扩充到一个驱动器号
%~pI – 仅将 %I 扩充到一个路径
%~nI – 仅将 %I 扩充到一个文件名
%~xI – 仅将 %I 扩充到一个文件扩展名
%~sI – 扩充的路径只含有短名
%~aI – 将 %I 扩充到文件的文件属性
%~tI – 将 %I 扩充到文件的日期/时间
%~zI – 将 %I 扩充到文件的大小

if命令详解
if的用法:1. ①if A运算符B (要执行的命令) else 其他命令
②if not A运算符B (要执行的命令) else 其他命令
2.①if exist 文件 要执行的命令
②if not exist 文件 要执行的命令
3.①if errorlevel 数字 要执行的命令
②if not errorlevel 数字 要执行的命令
4.①if %errorlevel%==数字 要执行的命令
②if not %errorlevel%==数字 要执行的命令
运算符包括:
EQU-等于 NEQ-不等于 LSS-小于 LEQ-小于或等于 GTR-大于 GEQ-大于或等于

set 命令
set 变量名=变量值
set /p 变量名=”提示信息”
set /a 变量名=表达式
set 新变量名=%已赋值变量:~起始,数量%
set 新变量名=%已赋值变量:要替换的字符=替换后的字符%

1.@
隐藏执行的命令,只显示结果.
例子:
echo 欢迎来到   @echo 欢迎来到 pause

2.&
命令连接符号.就是把两个命令连续执行,不用分行
例子:
dir c:\ & dir d:\ & dir e:\

3.&&
连接两个命令,当&&前的命令成功时,才执行&&后的命令。
例子:
dir c:\ && dir d:\
dir z:\ && dir d:\

4.|
管道符,就是将上一个命令的输出内容,作为下一个命令的输入内容.
例子:
type c:\windows\*.log|more

5.||
命令连接符号,表示上一条命令执行失败后,才执行||符号后的内容.
例子:
dir z:|| dir c:\

6.>
重定向符,将命令的输出结果重定向到其后面的设备中去,后面的设备中的内容被覆盖.
dir c:\ >d:\test.txt

7.>>
重定向符,将命令的输出结果重定向到其后面的设备中去,后面的设备中的内容会被增加在后面.
例子:
dir c:\ >>d:\test.txt
dir d:\ >>d:\test.txt

8.<
重定向符,将后面的指定设备的内容,作为前面命令的输入内容
例子:
建立个1.txt文件,内容为net user
nc -l -v -p 888
nc 127.0.0.1 888 <1.txt

9.^
取消特殊符号的作用
例子:
echo ^> >1.txt

9.%
有点特殊,我先讲一个%0 它可以返回批处理所在绝对路径
例子:
@echo off
net user
%0                     效果就是重复执行上面的命令,因为执行到%0时又返回到绝对路径了,就又从头开始执行

10.*
通配符号,表示任意个字符.
例子:
del c:\windows\*.log

11.?
通配符号,表示任意一个字符.
例子:
net ?ser

12.“.”
表示当前目录
例子:
dir .\

13.”..”
表示上一级目录
例子:
cd..

14.” ”
界定符,通常用来引用含有空格的目录.
例子:
dir “C:\Documents and Settings”

15.”:”
标签定位符,表示后面的内容是一个标签名
例子:
@echo off
:start
echo Hello world,heiying is there..
pause
goto start

16.”,”
某些时候可以当空格使用
例子:
echo,
dir,c:\

17.”;”
分号作用就是,当命令相同时,可以将不同目标用;来隔离.
例子:
dir c:\;d:\

FOR /L %%i IN (1,1,37)   DO   nc    127.0.0.1   80 <1.txt >nul    其中>nul表示不显示返回的内容

批处理整理IP的代码:

@echo off
color a
for /f “eol=- tokens=1 delims= ” %%i in (result.txt) do echo %%i>>1.txt
for /f “eol=P tokens=1 delims= ” %%i in (1.txt) do echo %%i>>2.txt
for /f “eol=S tokens=1 delims= ” %%i in (2.txt) do echo %%i>>Open.txt
del 1.txt
del 2.txt

ping -n 10 127.1          ping   127.1 10次,常作为获取等待时间作用

for /r “D:\Program Files\Borland\Projects” %%i in (*.dcu *.exe) do echo %%i

系统变量%SystemRoot% = C:\WINDOWS 在cmd中输入set就可看到全部系统变量

DEL命令选项中,/F            强制删除只读文件
/A            根据属性选择要删除的文件。
attributes      R 只读文件                     S 系统文件
H 隐藏文件                     A 存档文件
– 表示“否”的前缀
del /a /f *.txt就能删除隐藏文件

设置用户chenming,文件 F:\1.txt

设置所有权限:icacls F:\1.txt /grant chenming:F

禁止访问:icacls F:\1.txt /deny chenming:(GR)