Chinaunix首页 | 论坛 | 博客
  • 博客访问: 12458700
  • 博文数量: 1293
  • 博客积分: 13501
  • 博客等级: 上将
  • 技术积分: 17974
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-08 18:11
文章分类

全部博文(1293)

文章存档

2019年(1)

2018年(1)

2016年(118)

2015年(257)

2014年(128)

2013年(222)

2012年(229)

2011年(337)

分类: WINDOWS

2013-08-07 16:53:41

1、rem 与 echo、set、pause指令


  1. @echo off
  2. @echo on
  3. rem Test bat command
  4. set path1=%cd%
  5. set/p path2=
  6. @echo %path2%
  7. pause


image

图1-1

 

image

图1-2


  1. @ # 关闭单行回显,如果命令不加@,后重复显示一行,如图1-2
  2. @echo off / @echo on #用来开关echo;
  3. @rem 用于注释, #,所有rem 后面的语句都被执行;



2、添加环境变量到path,还需要决断该变量是否存在


  1. rem 添加路径到PATH中---------------------------------------------------------------------------------------------------
  2.     @set Path_=D:\Program Files
  3.     for,/f,"tokens=1,2,* delims= ",%%a,in,('reg query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v Path'),do,(
  4.         @set PathAll_=%%c
  5.     )
  6.     echo %PathAll_%
  7.     echo %PathAll_%|find /i "%Path_%" && set IsNull=true|| set IsNull=false
  8.     if not %IsNull%==true (
  9.        reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /d "%PathAll_%;%Path_%" /
  10.     )
  11.     if not %IsNull%==false (echo "This path has exists")
  12. pause



    for,/f,"tokens=1,2,* delims=(Tab)(空格)",%%a,in,('reg query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v Path')

    这一句的作用是遍历注册表HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment中的Path变量的所有文本,并以Tab+空格做分隔符,取出第1、2和剩余部分,分别存放在a、b、c变量中。如图2-1:

image

图2-1

    因此%%a,代表Path,%%b代表REG_SZ,%%c代表 C:\Windows\System32;D:\Program Files。

    必须注意 delims=(Tab)(空格)" ,这里必须是先一个tab后再加空格,不然一定会报错的。

    另外注意,因为上面的对Path的分割用的是(Tab)(空格),for语句写成如下:

for,/f,"tokens=1,2,3 delims=(Tab)(空格)",%%a,in(略)

这里%%c取得的值将是 “C:\Windows\System32;D:\Program”,原因是Program Files中出现了一个空格。

神说,这里因为delims默认的分隔符是空格和tab键,这个地方注意一下!

 

3、让注册表生效的方法之一(某些情况可以,某些情况必须重启系统)


  1. rem 重启explorer进程让上面的注册表信息立马生效
  2. taskkill /im explorer.exe /f
  3. echo 正在启动explorer.exe
  4. start "" "c:\windows\explorer.exe"
  5. echo explorer.exe已开启
  6. ping -n 4 127.0.0.1>null


阅读(7812) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~