C++ Programmer's Cookbook

{C++ 基础} {C++ 高级} {C#界面,C++核心算法} {设计模式} {C#基础}

《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

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"

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 
/-%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

o_varabiles.JPG

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

也可以选中程序右键中的->运行方式。如下图:
o_runas.JPG

thx!


zz

posted on 2006-11-07 16:02 梦在天涯 阅读(3603) 评论(0)  编辑 收藏 引用 所属分类: Windows Script


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


公告

EMail:itech001#126.com

导航

统计

  • 随笔 - 461
  • 文章 - 4
  • 评论 - 746
  • 引用 - 0

常用链接

随笔分类

随笔档案

收藏夹

Blogs

c#(csharp)

C++(cpp)

Enlish

Forums(bbs)

My self

Often go

Useful Webs

Xml/Uml/html

搜索

  •  

积分与排名

  • 积分 - 1784830
  • 排名 - 5

最新评论

阅读排行榜