`
wen866595
  • 浏览: 264192 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

更多批处理

阅读更多

 

先上一个用批处理调用yuicompressor压缩js、css的脚本(以前没学批处理时,用java写过,麻烦多了),用到的知识在下面给出:

@echo off

setlocal enabledelayedexpansion

set pwd=%CD%

set srcDir=%pwd%\testcompress
set dstDir=%pwd%\testcompressres

del /F /Q /S %dstDir%\*

for /R %srcDir% %%D in (*) do (
	
	set pth=%%~dpD
	set pth=!pth:%srcDir%=%dstDir%!
	set fname=%%~nD
	set ext=%%~xD

	if not exist !pth! 	mkdir !pth!
	
	set dst=!pth!!fname!!ext!
	
	if /I "!ext!" == ".css" (
		java -jar yuicompressor-2.4.7\build\yuicompressor-2.4.7.jar --charset utf8 --type css -o !dst! %%D
	) else if "!ext!" == ".js" (
		java -jar yuicompressor-2.4.7\build\yuicompressor-2.4.7.jar --charset utf8 --type js  -o !dst! %%D
	)
)
 

下面的知识点,感觉会常用的主要有:变量增强、延迟变量、字符串变量替换,如:

set pth=!pth:%srcDir%=%dstDir%!

 

@echo off


rem 特殊标记符:
rem CR(0D)      命令行结束符
rem Space(20)   空格,常用的参数界定符
rem Tab(09)     不常用的参数界定符
rem +           命令文件连接符
rem *, ?        文件通配符
rem ""          字符串界定符
rem ^           转义符,其后面的特殊字符按原样输出
rem |           命令管道符
rem <, >, >>    文件重定向符
rem @           命令行回显屏蔽符
rem /           参数开关引导符
rem :           批处理标签引导符
rem %           批处理变量引导符


rem 组合命令:
rem &, Usage: 第一条命令 & 第二条命令 [& 第三条命令...]
rem    同时执行多条命令,而不管命令是否执行成功。

rem &&, Usage: 第一条命令 && 第二条命令 [&& 第三条命令...]
rem    同时执行多条命令,当碰到执行出错的命令将不执行后面的命令,如果一直没有出错则一直执行完所以命令。

rem ||, Usage: 第一条命令 || 第二条命令 [|| 第三条命令...]
rem    同时执行多条命令,当碰到执行正确的命令将不执行后面的命令,如果一直没有出现正确执行的命令则一直执行完所以命令。


rem |,管道命令
rem Usage: 第一条命令 | 第二条命令 [| 第三条命令...]
rem 将第一条命令的结果作为第二条命令的参数来使用
rem sample: netstat -n -p tcp | find "49194"

rem >, >>, 输出重定向命令
rem 将一条命令或某个程序输出结果重定向到特定文件中。> 与 >> 的区别在于:
rem >  会清除原有文件中的内容后写入指定文件,
rem >> 只会追加内容到指定文件中,而不会改变其中的内容。

rem  <, >&, <&
rem  <  从文件中而不是键盘中读入命令输入。
rem  >& 将一个句柄的输出写入到另一个句柄的输入中。
rem  <& 从一个句柄读入输入并将其写入到另一个句柄输出中。


set [[/a [expression]] [/p [variable=]] string]
rem  参数说明
rem  /a :  将string设置成可求值的数字表达式
rem  /p :   将variable的值设置成输入行
rem  variable : 指定需要设置或修改的变量
rem  string :  指定要与变量关联的字符串
rem  /? : 在命令提示符显示帮助


rem  数字表达式求值(使用/a)
rem  set /a expression, set的/a参数就是让set可以支持数学符号进行数学运算,数值默认是10进制,前缀0x表示十六进制,0表示八进制数字。
rem  按优先级从高到低:
rem  运算符             执行的操作
rem  ()					分组
rem  +-*/%              算法
rem  <<  >>             逻辑移位
rem  & | ^ 				位运算
rem  + += -= *= /= %= &= ^= |= <<= >>= 赋值
rem  ,					表达式分隔符

rem  如果使用逻辑(&|)或模(%)运算符,要用引号将表达式字符串引起来。表达式中的非数字字符串将被视为环境变量名
rem  (运行对环境变量进行算术运算,而不需要使用%),其值将被转化成数字然后进行处理。如果指定的当前环境中
rem  没有定义的环境变量名,将会分配零值。


rem  提供交互界面(使用/p)
set /p var=请输入变量的值:
echo %var%



rem  用 if [not] defined variable 可以判断变量是否有内容

rem  1、环境变量
rem  如果没有任何参数,set命令将显示当前环境变量
rem  当指定变量和字符串的值时,指定的变量值将被添加到该环境,而且该字符串与该变量关联。如果环境中已存在该变量,新的字符串值将替代旧的字符串值。
rem  如果只为set命令指定一个变量和一个等号(没有字符串),则与该变量关联的字符串值将被消除(就像变量根本不存在一样)


rem  2、延迟环境变量说明与启用
rem  延迟环境变量扩展的功能,即变量延迟解析功能。此功能默认是停用的,可以谈过cmd.exe /V 或
rem  setlocal EnableDelayedExpansion来开启。使用延迟变量时需要用"!"括起。


rem  3、动态环境变量
rem  变量        说明
rem  %CD%                扩充为当前目录
rem  %DATE%              扩充为当前日期
rem  %TIME%              扩充为当前时间
rem  %RANDOM%            扩充为0到32767的随机数
rem  %ERRORLEVEL%        扩充为当前命令处理器命令扩展版本号
rem  %CMDCMDLINE%        扩充为调用命令处理器的原始命令行,即控制台路径


rem  4、变量增强(文件名路径处理)
rem  变量          说明
rem  %~I			扩充%I为删除外围"引号(有就删)
rem  %~fI			扩充%I为一个完整的路径
rem  %~dI			仅扩充%I为一个驱动器号
rem  %~pI			仅扩充%I为一个路径
rem  %~nI			仅扩充%I为一个文件名
rem  %~xI			仅扩充%I为一个文件扩展名
rem  %~sI			扩充%I为完整的短命路径
rem  %~aI			扩充为文件的属性(arsh)
rem  %~$PATH:I		变量可以是其他的,如:windDir、programfiles等在环境变量PATH指定的路径总搜索文件,扩充%I为找到的第一个文件的完整路径;若未找到文件,则扩充%I为空。

rem  组合扩展参数效果:
rem  %~dpI:		仅扩充%I为驱动器号和路径
rem  %~nxI:		仅扩充%I为文件名加扩展名
rem  %~fsI:		扩充%I为完整的短名路径(%~sI)


rem 数值范围迭代
rem for /L %%i in (start, step, end) do cmd
for /L %%i in (1, 1, 5) do echo %%i

 

 

 

 

 

1
5
分享到:
评论

相关推荐

    批处理源代码327例

    精品的批处理案例,可以帮助初学者了解更多批处理的用处

    如何编写批处理文件批处理文件批处理文件

    解析成零或更多的符号。然后用已找到的符号字符串变量值 调用 For 循环。以默认方式,/F 通过每个文件的每一行中分开 的第一个空白符号。跳过空白行。您可通过指定可选 "options" 参数替代默认解析操作。这个带...

    Visual Studio 扩展插件v2.0

    基于Microsoft Visual Studio 2008环境(具体项目类型为“其他项目类型”→“扩展性”→“Visual Studio 外接程序”),用...该插件绝对是世界上独一无二的,当然如果需要更多批处理功能,聪明的你也可以继续发挥哦……

    Visual Studio 扩展插件v3.0

    基于Microsoft Visual Studio 2008环境(具体项目类型为“其他项目类型”→“扩展性”→“Visual Studio 外接程序”),用...该插件绝对是世界上独一无二的,当然如果需要更多批处理功能,聪明的你也可以继续发挥哦……

    Spring.Batch批处理框架

    Spring Batch是Spring的一个子项目,使用Java语言并基于Spring框架为基础开发,使得已经使用 Spring 框架的开发者或者企业更容易访问和利用企业服务。 Spring Batch 提供了大量可重用的组件,包括了日志、追踪、事务、...

    批处理程序编程软件

    BatProject是一款批处理编辑软件,致力于为用户打造功能最强大、最简洁的批处理开发环境 1、高亮代码 ... 然而BatProject具有如此多的功能,整个软件却不显得臃肿,清爽简洁,让用户更高效地完成批处理编写

    Visual Studio 扩展插件v6.2

    该插件绝对是世界上独一无二的,当然如果需要更多批处理功能,聪明的你也可以继续发挥哦…… 插件基于Microsoft Visual Studio 2008环境进行开发,所以插件可以在Microsoft Visual Studio 2008以上版本的Microsoft ...

    批处理命令大全.rar

    但我想总结出一个“比较合适的”,而且我也相信自己可以把它解释的很清楚,让更多的菜鸟都知道这是个什么东东,你用这个东东可以干什么事情。或许你会因为这篇文章而“无条件爱上批处理”,那么我的目的就达到了----...

    多线程异步批处理模块

    比上一次的版本做了优化和更能上的添加: 增加了把指定事件任务分配给指定线程的功能 增加了吧指定事件任务分配给指定某一类线程的功能 对等待时间进行了优化以提高效率,增加CPU使用率 SampleTest.java为一个样例...

    经典批处理编程简明教程

    从 更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本,都具有与批处理文件十分相似的作用,而且同样是由 专用解释器以行为单位解释执行,这种文本形式更通用的称谓是脚本...

    dos实例和批处理手册

    dos批处理的实例,多研究研究帮你更好的掌握dos编程的用法和思想!

    无敌文件批处理大师 V1.2

    您见过如此功能强大的文件... 新增了批量替换功能,您现在可以轻松地将一个文本文件中的所有大写标点符号转换为小写了,当然还有还可以实现更多功能,如将简体网页转换成真正的繁体网页(连常用词语都可以进行转换)

    dos批处理命令详解

    来宾组,来宾组跟普通组Users的成员有同等访问权,但来宾账户的限制更多。 5.Everyone 所有的用户,这个计算机上的所有用户都属于这个组。 6.SYSTEM组 这个组拥有和Administrators一样甚至更高的权限,在...

    bat批处理使用详细教程(DOC格式)

    bat批处理使用详细教程(DOC格式) 更多资源请登录我的空间哦

    教你写批处理,学习批处理更容易

    批处理学习的好帮手,好工具,很多实例.批处理的用处是很多的.大家用起来就知道了

    dos批处理命令集(更多命令)

    dos批处理命令集:此文档包含了常用的dos命令

    图片批处理

    欢迎使用《iPai图片批处理》5.8版! 《iPai 图片批处理》是一款旨在简化图片...摄像头拍照、屏幕截图、图片裁剪、移动图片、颜色矩阵、制作边框等更多功能使用技巧请关注我们的官方网站和论坛,这里不再一一列举。

    快发邮件批处理 用于快速群发邮件

    快发邮件批处理 功能介绍: 快发邮件批处理主要用于批量自动登录网站邮箱,多线程同时登录发送邮件,不管邮箱是否支持POP3都可以使用。对于账号为139移动邮箱还可以发送... 今后升级版将会增加更多网站邮箱的支持。

    凌霄图像批处理专家

    更强大的是,您可以使用“如果...否则...”条件判断图像的基本信息(宽度、高度、文件名、日期等)来决定下一步的操作。 批量文件改名: 除了常规文件改名工具应有的功能外,她还可以只替换包含指定字符串的一...

    经典生动讲解bat批处理教程

    这是一篇技术教程,我会用很简单的文字表达清楚自己的意思,你要你识字就能看懂,就能学...所以我会用很多简单实用的例子让读这篇教程的朋友去体会批处理的那四射的魅力,感受它那古灵精怪的性格,不知不觉中爱上批处理

Global site tag (gtag.js) - Google Analytics