《windows系统管理--使用命令行,批处理文件和windows脚本》(批处理文件)
1 简单实例 (经常用于大的软件项目开发中,使所有开发人员拥有相同的开发环境)
假如有E:\A\AA\aaa.txt 和E:\B . A和B中分别为你的项目代码和输出,则通过下面的批处理文件Path_subst则可以使你的代码为M盘,而输出为N盘,对于其他的开发人员则只需要修改批处理文件variables_setup中的变量所代表的路径,也可以达到同样的目的,使代码和输出分别在M和N盘。另外有时也需要文件的拷贝,参看copy.bat文件。
variables_setup.bat
Path_subst.bat
REM =================================================================
REM run variables_setup.bat to set necessary vairables first
REM =================================================================
call variables_setup.bat
REM =================================================================
REM substitue dirves
REM =================================================================
subst M: / d
subst M: " %Source_PathA% "
subst N: / d
subst N: " %Dest_PathB% "
copy.bat
2 批处理文件命令
Call 在一个批处理文件中调用另一个批处理文件,原批处理文件继续执行.
Choice 暂停批处理文件的执行,提示让用户选择.
Echo 显示文本和选择显示方式.
Endlocal 还原setlocal中改变的环境变量
For 循环
Goto 跳转.
If 条件选择.
Pause 暂停执行,用户按任意键继续执行.
Rem 注释.
Setlocal 开始使用新的环境变量,知道endlocal.
Shift 被用来改变批处理文件参数的位置.
3 命令行路径和环境变量
命令行路径是在命令行窗口中执行没有指定路径的命令或程序时,查找命令或程序的默认路径,命令行路径Path是一个系统变量,他允许你执行不在当前命令行窗口工作目录下的命令和程序。可以使用以下方法修改:
1)Path命令:只修改当前打开的命令行窗口的路径,增加新的路径,语法:Path [%path%];[drive:]path
例如增加C:\Myfiles到路径的最后,实现如下:Path %path%;C:\Myfiles ,如果你新增加到最前面,最先查找此目录,则:Path C:\Myfiles;%path% (注意:路径的查找顺序是从前到后哦,第一个开始,。。。。)
2)Set命令,SetX命令,这2个命令处理能够修改命令行路径,还可以修改其他的环境变量,区别是set是修改只对当前打开的命令行窗口有效,而setx则是永久的修改路径,相当于用windows的系统属性窗口修改。使用语法实例如下:Set Path=%path%;C:\Myfiles ,Setx Path "%PATH%;C:\Myfiles" ,区别上面已经说了啊。
3)windows系统中的系统变量修改窗口,如下(都知道在那里找把,哈哈,在我的电脑右键->属性->高级->环境变量)
注意:最好在修改前,现备份你原来的路径哦,否则有可能。。
还有有时由于安装某些软件,命令行窗口不能使用,则可能是由于原来的路径没有了,
以下3个路径是必须要有的哦,没有的话赶快加上哦,怎么加,用上面3中方法中的一种就可以了: C:\Windows\System32;C:\Windows;C:\Windows\System32\Wbem
4 命令的重定位
> 使命令的输出到文件或指定的分区,如果文件不存在则创建,如果已经存在则覆盖 .
< 从指定的文件输入,而不是从键盘.
>> 增加输出到指定文件的末尾,而不是覆盖. 如果不存在则创建文件.
>& 命令的输出作为另一个命令的输入.
<& 读取一个命令的输入,输出到另一个命令的输出.
| 读取一个命令的输出发送为另一个命令的输入. 这也被成为piping.
实例:Sort<Userlist.txt 排序userlist.txt文件的内容,输出到命令行窗口
<Userlist.txt 列举uerlist.txt的内容,在命令行窗口
Ipconfig>Test.log 将ipconfig的结构存到test.log中
Ipconfig>>Test.log 区别于上面哦()
Dir | sort>FileList.txt 先对目录下的目录排序,然后存到filelist.txt中
Dir | find ".txt" | more 列举目录下的txt文件,且实现分页显示,每按任意键则下一页(Find *| more 经常使用的哦)
5 批处理中的异常处理和命令组
最常用的方法就是将异常输出到txt或log文件,例如:Netstat >Report.txt > 2>&1
Standard Handles for Command Redirection
STDIN 0 Standard input is sent from the keyboard.
STDOUT 1 Standard output is sent to the command shell
window.
STDERR 2 Standard error output is sent to the command
shell window.
UNDEFINED 3 through 9 Application-specific handles.
命令组:通过&, &&, and || 实现命令执行的条件选择等,还可以实现带参数的命令组,实例:
Md C:\Reports\Final & Cd C:\Reports\Final 现建立,然后改为工作目录
Cd C:\Reports\Mar98 && Copy Rep5.txt D:\Reports 只有先转到目录mar98,然后才copy文件
Cd C:\Reports\Mar98 || Md C:\Reports\Mar98 如果mar98目录不存在,则创建他(跟编程语言中的差不多的)
6 Run As 命令
可以使一个登录用户使用另一个用户执行其他的功能,更有利于系统的安全,例如在受限用户中使用run as使用administrator的权限和功能。
命令的语法:Runas [{/profile | /noprofile}] [/env] [/netonly] [/savedcreds]
[/smartcard] [/trustlevel] [/showtrustlevels] /user:UserAccountName program
也可以选中程序右键中的->运行方式。如下图:
thx!
zz
假如有E:\A\AA\aaa.txt 和E:\B . A和B中分别为你的项目代码和输出,则通过下面的批处理文件Path_subst则可以使你的代码为M盘,而输出为N盘,对于其他的开发人员则只需要修改批处理文件variables_setup中的变量所代表的路径,也可以达到同样的目的,使代码和输出分别在M和N盘。另外有时也需要文件的拷贝,参看copy.bat文件。
variables_setup.bat
REM
==============================================================================
REM This is an example for setting these vairalbes. Please modify them
REM for your own environment.
REM ==============================================================================
set Source_PathA = " E:\A "
set Dest_PathB = " E:\B "
REM This is an example for setting these vairalbes. Please modify them
REM for your own environment.
REM ==============================================================================
set Source_PathA = " E:\A "
set Dest_PathB = " E:\B "
Path_subst.bat
REM =================================================================
REM run variables_setup.bat to set necessary vairables first
REM =================================================================
call variables_setup.bat
REM =================================================================
REM substitue dirves
REM =================================================================
subst M: / d
subst M: " %Source_PathA% "
subst N: / d
subst N: " %Dest_PathB% "
copy.bat
REM
========
copy files
call variables_setup.bat
copy /- Y % Source_PathA % \AA\ * .txt % Dest_PathB %
call variables_setup.bat
copy /- Y % Source_PathA % \AA\ * .txt % Dest_PathB %
2 批处理文件命令
Call 在一个批处理文件中调用另一个批处理文件,原批处理文件继续执行.
Choice 暂停批处理文件的执行,提示让用户选择.
Echo 显示文本和选择显示方式.
Endlocal 还原setlocal中改变的环境变量
For 循环
Goto 跳转.
If 条件选择.
Pause 暂停执行,用户按任意键继续执行.
Rem 注释.
Setlocal 开始使用新的环境变量,知道endlocal.
Shift 被用来改变批处理文件参数的位置.
3 命令行路径和环境变量
命令行路径是在命令行窗口中执行没有指定路径的命令或程序时,查找命令或程序的默认路径,命令行路径Path是一个系统变量,他允许你执行不在当前命令行窗口工作目录下的命令和程序。可以使用以下方法修改:
1)Path命令:只修改当前打开的命令行窗口的路径,增加新的路径,语法:Path [%path%];[drive:]path
例如增加C:\Myfiles到路径的最后,实现如下:Path %path%;C:\Myfiles ,如果你新增加到最前面,最先查找此目录,则:Path C:\Myfiles;%path% (注意:路径的查找顺序是从前到后哦,第一个开始,。。。。)
2)Set命令,SetX命令,这2个命令处理能够修改命令行路径,还可以修改其他的环境变量,区别是set是修改只对当前打开的命令行窗口有效,而setx则是永久的修改路径,相当于用windows的系统属性窗口修改。使用语法实例如下:Set Path=%path%;C:\Myfiles ,Setx Path "%PATH%;C:\Myfiles" ,区别上面已经说了啊。
3)windows系统中的系统变量修改窗口,如下(都知道在那里找把,哈哈,在我的电脑右键->属性->高级->环境变量)
注意:最好在修改前,现备份你原来的路径哦,否则有可能。。
还有有时由于安装某些软件,命令行窗口不能使用,则可能是由于原来的路径没有了,
以下3个路径是必须要有的哦,没有的话赶快加上哦,怎么加,用上面3中方法中的一种就可以了: C:\Windows\System32;C:\Windows;C:\Windows\System32\Wbem
4 命令的重定位
> 使命令的输出到文件或指定的分区,如果文件不存在则创建,如果已经存在则覆盖 .
< 从指定的文件输入,而不是从键盘.
>> 增加输出到指定文件的末尾,而不是覆盖. 如果不存在则创建文件.
>& 命令的输出作为另一个命令的输入.
<& 读取一个命令的输入,输出到另一个命令的输出.
| 读取一个命令的输出发送为另一个命令的输入. 这也被成为piping.
实例:Sort<Userlist.txt 排序userlist.txt文件的内容,输出到命令行窗口
<Userlist.txt 列举uerlist.txt的内容,在命令行窗口
Ipconfig>Test.log 将ipconfig的结构存到test.log中
Ipconfig>>Test.log 区别于上面哦()
Dir | sort>FileList.txt 先对目录下的目录排序,然后存到filelist.txt中
Dir | find ".txt" | more 列举目录下的txt文件,且实现分页显示,每按任意键则下一页(Find *| more 经常使用的哦)
5 批处理中的异常处理和命令组
最常用的方法就是将异常输出到txt或log文件,例如:Netstat >Report.txt > 2>&1
Standard Handles for Command Redirection
STDIN 0 Standard input is sent from the keyboard.
STDOUT 1 Standard output is sent to the command shell
window.
STDERR 2 Standard error output is sent to the command
shell window.
UNDEFINED 3 through 9 Application-specific handles.
命令组:通过&, &&, and || 实现命令执行的条件选择等,还可以实现带参数的命令组,实例:
Md C:\Reports\Final & Cd C:\Reports\Final 现建立,然后改为工作目录
Cd C:\Reports\Mar98 && Copy Rep5.txt D:\Reports 只有先转到目录mar98,然后才copy文件
Cd C:\Reports\Mar98 || Md C:\Reports\Mar98 如果mar98目录不存在,则创建他(跟编程语言中的差不多的)
6 Run As 命令
可以使一个登录用户使用另一个用户执行其他的功能,更有利于系统的安全,例如在受限用户中使用run as使用administrator的权限和功能。
命令的语法:Runas [{/profile | /noprofile}] [/env] [/netonly] [/savedcreds]
[/smartcard] [/trustlevel] [/showtrustlevels] /user:UserAccountName program
也可以选中程序右键中的->运行方式。如下图:
thx!
zz