[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

一、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!
复制代码

第三段代码,num1=8,num2=2,你咋办

TOP

收集ING

收集BAT 中ING..................

TOP

非常.非常感谢...  正在整理批处理..谢谢.

TOP

返回列表