常见的批处理文件解读

       在Java的世界里,使用bat启动的软件比比皆是。对批处理没有基础概念的我,对这些让人难以理解的符号特别好奇。来记录一下经常碰到的,且看不懂的符号吧。上脚本。

       在搜索让人头疼的符号时,发现了一个很全的总结,window bat的基本语法,可供参考。

1、%*     命令行参数

            bat批处理文件理论上支持无限多个参数的传入,但最多支持**9**个参数的获取。

@echo off   ----关闭回显

REM Licensed to the Apache Software Foundation (ASF) under one or more
REM contributor license agreements.  See the NOTICE file distributed with
REM this work for additional information regarding copyright ownership.
REM The ASF licenses this file to You under the Apache License, Version 2.0
REM (the "License"); you may not use this file except in compliance with
REM the License.  You may obtain a copy of the License at
REM
REM     http://www.apache.org/licenses/LICENSE-2.0
REM
REM Unless required by applicable law or agreed to in writing, software
REM distributed under the License is distributed on an "AS IS" BASIS,
REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
REM See the License for the specific language governing permissions and
REM limitations under the License.      ---rem在bat的世界里是注释的声明

setlocal    -------设置在本脚本内的本地变量,只在当前bat文件中存在,不存在在全局中。相当于是变量作用域的声明,变量作用域起始位置

call "%~dp0zkEnv.cmd"     ---- %~dp0 代表本文件所在的目录, call调用其他批处理文件

set ZOOMAIN=org.apache.zookeeper.server.quorum.QuorumPeerMain   ---声明变量
set ZOO_LOG_FILE=zookeeper-%USERNAME%-server-%COMPUTERNAME%.log

echo on    ----打开回显
call %JAVA% "-Dzookeeper.log.dir=%ZOO_LOG_DIR%"  "-Dzookeeper.root.logger=%ZOO_LOG4J_PROP%" "-Dzookeeper.log.file=%ZOO_LOG_FILE%" "-XX:+HeapDumpOnOutOfMemoryError" "-XX:OnOutOfMemoryError=cmd /c taskkill /pid %%%%p /t /f" -cp "%CLASSPATH%" %ZOOMAIN% "%ZOOCFG%" %*  ----call调用java.exe,启动java虚拟机

endlocal   -----变量作用域起始位置

2、call和start的区别

start一般是用来启动一个应用,譬如:
   start cmd 会重新打开一个cmd窗口
   start notepad++ 启动notepad++这个应用

call 一般用来调用批处理脚本,他不会打开一个新的窗口,他不能用于启动一个应用
   call cmd
   call pre.bat 

3、批处理环境常见的系统变量

遍历所有的系统环境变量:
    setlocal enabledelayedexpansion
    FOR /F "usebackq delims==" %%i IN (`set`) DO @echo %%i !%%i!

常见的环境变量:
   %SystemRoot% === C:\WINDOWS (%windir% 同样)

   %ProgramFiles% === C:\Program Files

   %USERPROFILE% === C:\Documents and Settings\Administrator (子目录有“桌面”,“开始菜单”,“收藏夹”等)

   %APPDATA% === C:\Documents and Settings\Administrator\Application Data

   %TEMP% === C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp (%TEM% 同样)

   %APPDATA% === C:\Documents and Settings\Administrator\Application Data

   %OS% === Windows_NT (系统)

   %Path% === %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem (原本的设置)

   %HOMEDRIVE% === C: (系统盘)

   %HOMEPATH% === \Documents and Settings\Administrator

4、文件的常见操作

@rem 查看文件 
type a.txt  

@rem 分屏查看
more a.txt  

@rem 新建文件
echo "this is new file" >> new.txt

@rem 向文件尾追加内容
echo "append content" >> old.txt

@rem 使用新内容覆盖文件
echo "new content" > old.txt

@rem 删除文件
del old.txt

@rem 删除多个文件
del old.txt old2.txt

@rem 使用通配符删除当前目录下多个文件
del *.txt

@rem 使用通配符删除当前目录下的所有文件
del *.* 

@rem 文件重命名
rename old.txt old1.txt

@rem 文件重命名
ren old.txt a.txt

@rem 复制文件
copy source.txt target.txt

@rem 替换文件
replace /?


5、目录的常见操作

@rem 新建文件夹
md meng
mkdir miao

@rem 删除文件夹
rmdir meng

@rem 删除文件夹及其中的所有文件
rmdir /s meng

@rem 删除文件夹及其中所有文件,不需要确认
rmdir /s /q meng

6、执行多条命令以及命令的执行结果

@rem 顺序执行多条命令,不管前面的命令是否执行成功
date & time

@rem 顺序执行多条命令,如果前面的命令执行失败,后面的命令停止执行
find "meng" music.log && echo "find success"

@rem 执行多条命令,当前面的命令执行失败,则后面命令执行
find "meng" music.log || echo "find fail"

7、查找

@rem 从管道内容中查找


@rem 从文件中查找


@rem 从文件中查找指定的字符并删除


@rem 从文件中查找指定的字符并替换

8、接收用户输入

 

9、当前路径
 

10、变量

 

11、for循环探究

@echo off

@rem for和in中间的变量在脚本文件中必须用%%,在命令行用%
@rem in和do中间的变量,括号不能省略
@rem do之后必须有内容

@rem 以逗号分隔
for %%i in (a,b,c) do echo %%i

@rem 以空格分隔
for %%i in (a b c) do echo %%i

@rem 以Tab分隔
for %%i in (a	b	c) do echo %%i

@rem 以分号分隔
for %%i in (a;b;c) do echo %%i

@rem 以等号分隔
for %%i in (a=b=c) do echo mengmiao%%i

@rem 遍历当前目录中的所有文件
for %%i in (*.*) do echo %%i

@rem 遍历当前目录中的所有的txt文件,do后可以执行多条命令,命令使用&分隔
for %%i in (*.txt) do echo txt=%%i & echo "mutil command"

@rem /l 命令扩展 该集表示以增量形式从开始到结束的一个数字序列 第一位是初始值 第二位是步数 第三位是最大值
for /l %%i in (1,2,10) do @echo %%i

 

常用批处理 bat 程序├─BAT优化│ -禁止修改、写入SYSTEM32目录.BAT│ -让XP不用图片查看器看图(略缩图).BAT│ DEL.JPG.SCR.BAT│ DELTEMP.BAT│ 关闭系统信使.BAT│ 减少非法关机等待扫描时间.BAT│ 删除系统备份文件.BAT│ 卸载INTEL集成显卡如同鸡胁的显面增强.BAT│ 卸载XP内置ZIP.BAT│ 恢复使用XP注册表.BAT│ 注册所有DLL.BAT│ 清除输入法外的所有RUN运行项.BAT│ 禁止修改、写入SYSTEM32目录.BAT│ 禁用危险的默认共享.BAT│ 让XP不用图片查看器看图(略缩图).BAT│ ├─其它类│ 2000XP停止打印.bat│ dir.bat│ sxs.exe 的查杀.bat│ sz.reg转换成reg.bat.bat│ 全盘删除所有文件夹下的_desktop.ini.bat│ 删除大小和类型一样的文件.bat│ 删除所有分区的默认共享.bat│ 将cwindows.复制到当前目录并显示进度.bat│ 打开快捷方式指向的目录.bat批处理读注册表的Run下面的值.bat│ 按扩展名分类.bat│ 显示c盘~z盘.bat│ 枚举当前目录及子目录大小.bat│ 枚举显示.bat│ 查找最新的文件.bat│ 每个目录占用的空间.bat│ 篮球飞人火爆版.cmd│ 结束进程.bat│ 解锁注册表.BAT│ 输出倒文.bat│ 锁注册表.BAT│ ├─系统类│ C盘转换为NTFS格式.cmd│ dos下重启.bat│ guest.bat│ win2000关机命令.bat│ WIN2003 IIS最小权限分配.bat│ winxp修改计算机名.bat│ xp下确定最后的盘符.bat│ 不显示扩展名.bat│ 不显示隐藏文件.bat│ 使用WMI别名获取CPU信息.bat│ 关闭IDE通道检测.bat│ 列举进程.bat│ 判断光驱是否可用.bat│ 判断光驱里有无光盘.bat│ 判断分区格式.bat│ 刷新策略.bat│ 取得硬盘数.bat│ 右键添加bat.bat│ 右键添加打开MS-DOS.bat│ 弹出光驱.bat│ 改变我的文档路径.bat│ 显示扩展名.bat│ 显示用户名.bat│ 显示隐藏文件.bat│ 更改电源管理方式.bat│ 更改盘符.bat│ 更改系统启动菜单的时间.bat│ 查看工作组.bat│ 查看物理内存.bat│ 查看用户是否存在.bat│ 查看电脑硬件信息.bat│ 查看驱动器.bat│ 禁止保留文档记录.bat│ 给每个盘添加卷标.cmd│ 被锁定帐户.bat│ 重命名administrator账号.bat│ └─网络类 ARP本机绑定.bat XP服务优化批处理.bat 中文显示ping结果.bat 断开网络联结.bat 显示网络配置.bat 显示自己的IP.bat 查看网关的MAC地址.bat 查看进程使用的端口.bat 检查网络信息.bat 百度关键字搜索.bat 绑定网关的批处理及预留维护提到.bat 自动改回主页.bat 自定义配置网络ip、网关、dns.bat 网络信息.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值