返回   cpper编程论坛 > 技术杂烩
注册账号 论坛帮助 会员列表 日历事件 搜索 今日新帖 标记版面已读

技术杂烩 找不到地方的技术问题?这里!

回复
 
LinkBack 主题工具 显示模式
  #1 (permalink)  
旧 2007-11-14
cat cat 当前离线
高级会员
 
注册日期: 2003-11-06
帖子: 1,560
文章: 6
cat 正向着好的方向发展
默认 Windows cmd 脚本语法

最近写了点脚本,发现一个好地方:
Windows XP Command Syntax

有一些东西貌似还是挺有用的,比如
1. 怎么写子函数?
代码:
:main @echo off echo this is main call :sub1 from main call :sub1 from main, 2nd time goto :eof :sub1 echo this is sub1. Message: %* goto :eof

2. 怎么在for的括号里面引用环境变量?或者if里面call一个函数然后check errorlevel?
代码:
@echo off rem *** enable !variable! setlocal enabledelayedexpansion for %%i in (1,2,3,4,5,6,7,8,9) do ( set A=%%i rem it doesn't work as expected echo %A% ) echo value of a after 1st loop %A% for %%i in (1,2,3,4,5,6,7,8,9) do ( set A=%%i rem it works as expected echo !A! ) echo value of a after 2nd loop %A%
3. 环境变量里面的字符串替换和substring
代码:
@echo off set var1=d:\sharedFolder echo \\%machinename%\%var1::=$% echo %var1:~0,3%
4. And/Or 执行命令
很多人大概知道 commandA & commandB是在commandA执行之后再执行commandB, 但其实还有:
commandA && commandB 相当于commandA执行,并且errorlevel是0的情况下去执行commandB
commandA || commandB 是commandA执行并且errorlevel不是0的情况下执行commandB
后者常用的是:
copy Z:\file.txt C:\ || echo file copy failed
(那么commandA | commandB呢?嘿嘿 pipe嘛)

5. 环境变量算术计算
代码:
@echo off set var1=0 set /a var1+=3 echo %var1% set /a var1*=5 echo %var1% set var2=10 set /a var1=var2+var1 echo %var1%
还有很多有趣的语法. for /?和if /?就可以发现好多好玩的,还有findstr where这些有用的命令等。

Powershell成气候之前玩玩也不错。

此帖于 2007-11-14 08:59 PM 被 cat 编辑.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
  #2 (permalink)  
旧 2007-11-14
高级会员
 
注册日期: 2006-02-11
帖子: 139
zero 正向着好的方向发展
默认 回复: Windows cmd 脚本语法

another reference:
MSDN Ref for Batch Files
个人觉得batch file的syntax不太nice,写起来用起来都颇为不爽。稍微复杂的,不如用javascript(这个叫啥来着的?Windows Script?)来的好。
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
  #3 (permalink)  
旧 2007-11-15
cat cat 当前离线
高级会员
 
注册日期: 2003-11-06
帖子: 1,560
文章: 6
cat 正向着好的方向发展
默认 回复: Windows cmd 脚本语法

Powershell没有成气候之前还是iron python这样的.net脚本比较好玩。
cmd的好处是直观……写一点fancy的syntax还可以忽悠人。js写得比较少,vbs用得更多一些。
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
  #4 (permalink)  
旧 2007-11-15
bankrock 的头像
高级会员
 
注册日期: 2003-12-11
帖子: 843
文章: 7
bankrock 正向着好的方向发展
默认 回复: Windows cmd 脚本语法

windows的cmd实在是弱,功能少,而且语法别扭。Windows支持的VBS和JS,比cmd好用多了,而且还能用com。

PS:MS Press有一本转述cmd的小册子,一两个小时的阅读内容,忘了叫什么了
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
  #5 (permalink)  
旧 2007-11-16
高级会员
 
注册日期: 2006-02-11
帖子: 139
zero 正向着好的方向发展
默认 回复: Windows cmd 脚本语法

引用:
作者: cat 查看帖子
Powershell没有成气候之前还是iron python这样的.net脚本比较好玩。
cmd的好处是直观……写一点fancy的syntax还可以忽悠人。js写得比较少,vbs用得更多一些。
xyt啊xyt。
fancy syntax....鄙视这种没事就要炫技的人。js和vbs我记得好像用vs2005写,还有auto completion来着。如果一个脚本很大的话,万一要调试也比较方便。不过写这种东西,应该是SDET做得比较多吧
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
  #6 (permalink)  
旧 2007-11-21
cat cat 当前离线
高级会员
 
注册日期: 2003-11-06
帖子: 1,560
文章: 6
cat 正向着好的方向发展
默认 回复: Windows cmd 脚本语法

……貌似被bs了……不过cmd这里用的不少的。基本上很多automation都是cmd做框框细节的cmd做不好的用C#/vbs来写。
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
  #7 (permalink)  
旧 2007-11-22
bankrock 的头像
高级会员
 
注册日期: 2003-12-11
帖子: 843
文章: 7
bankrock 正向着好的方向发展
默认 回复: Windows cmd 脚本语法

没有BS的意思,实际上Windows强在GUI上,cmd系统管理员用得比较多吧,但是customize的功能太少。

PS:以前写cmd总习惯在等号前加空格,每次查错都折腾好一阵
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
回复

书签

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码
Trackbacks are 启用
Pingbacks are 启用
Refbacks are 启用


相似的主题
主题 主题作者 版面 回复 最后发表
赛门铁克北京研发中心招Linux/windows 开发高手 httprui 技术杂烩 0 2007-01-26 11:52 PM
Windows启动过程介绍 zweily 技术杂烩 6 2006-03-12 10:45 PM
vs.net 2003出错,重装都不能解决 flmnix 技术杂烩 10 2005-07-03 01:18 AM
十年MFC经历认识的Microsoft技术【转贴】 famel 技术杂烩 0 2005-03-19 06:49 AM
[BMP]文件格式 codinggirl 技术杂烩 3 2004-07-01 09:40 PM


所有时间均为格林尼治时间 +9。现在的时间是 07:07 AM


Powered by vBulletin® 版本 3.7.0
版权所有 ©2000 - 2008,Jelsoft Enterprises Ltd.
(C) Copy Right All Right Reserved 2001 - 2007

Search Engine Friendly URLs by vBSEO 3.1.0