找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 14642|回复: 3

沙海拾贝----批处理命令特殊用法集锦

[复制链接]
发表于 2007-12-31 20:02:08 | 显示全部楼层 |阅读模式
一、set命令:(2007-9-25,中秋)
1、利用set /a去掉日期等数字前面的0,如:2007-09-25中月份中的09前面的0(当然这个月份是未知的,简单的说就
是不管前面有没有0都要保证去掉):
演示代码:
  1. @echo off
  2. set Day=1%date:~5,2%
  3. set /a Day-=100
  4. echo %Day%
  5. pause>nul
复制代码
另外,还可以(在深入运用时,比前一种更有优势):
  1. @echo off
  2. set/a day1=%date:~5,1%,day2=%date:~6,1%
  3. set/a day=%day1%*10+%day2%
  4. echo %day%
  5. pause>nul
复制代码
2、利用set /a(数值运算 除法中除数不允许出现0)返回值来设置数值运算的进位标志;
演示代码:
  1. @echo off 2>nul 3>nul
  2. set/a num1=7,num2=2
  3. set/a var=%num1%+%num2%
  4. set /a 1/(%var%/10) && echo 大于10 ||echo 小于10
  5. pause>nul
复制代码
再附一特大数值的加法运算演示代码:(先补位)
  1. ::code by youxi01@cmd_xp
  2. @echo off&setlocal enabledelayedexpansion
  3. set num1=984322212445613542523552165432136516565135132354123432987619431469731611346143789
  4. set num2=657973265856194306419643120641631361303163006131061301613061130161300613061130
  5. call :lineup num1
  6. call :lineup num2
  7. set/a flag=0
  8. for /l %%i in (1 1 199) do (
  9. set/a var=!num1:~-%%i,1!+!num2:~-%%i,1!+!flag!
  10. set var=0!var!
  11. set flag=!var:~-2,1!
  12. set str=!var:~-1!!str!
  13. )
  14. for /f "delims=0 tokens=*" %%i in ("!str!") do echo %%i
  15. pause>nul
  16. :lineup obj
  17.     for /l %%i in (1 1 200) do set %1=0!%1!
  18.     call set %1=!%1:~-200!
复制代码
发表于 2008-1-5 15:27:29 | 显示全部楼层
非常.非常感谢...  正在整理批处理..谢谢.
发表于 2008-2-12 17:24:41 | 显示全部楼层

收集ING

收集BAT 中ING..................
发表于 2010-4-17 14:46:09 | 显示全部楼层
第三段代码,num1=8,num2=2,你咋办
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 04:58 , Processed in 0.021612 second(s), 11 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表