set 命令特殊用法
更新時間:2009年06月02日 18:34:28 作者:
set 命令特殊用法實現(xiàn)代碼。
1、利用set /a去掉日期等數(shù)字前面的0,如:2007-09-25中月份中的09前面的0(當(dāng)然這個月份是未知的,簡單的說就
是不管前面有沒有0都要保證去掉):
演示代碼:
@echo off
set Day=1%date:~5,2%
set /a Day-=100
echo %Day%
pause>nul
另外,還可以(在深入運用時,比前一種更有優(yōu)勢):
@echo off
set/a day1=%date:~5,1%,day2=%date:~6,1%
set/a day=%day1%*10+%day2%
echo %day%
pause>nul
2、利用set /a(數(shù)值運算 除法中除數(shù)不允許出現(xiàn)0)返回值來設(shè)置數(shù)值運算的進位標(biāo)志;
演示代碼:
@echo off 2>nul 3>nul
set/a num1=7,num2=2
set/a var=%num1%+%num2%
set /a 1/(%var%/10) && echo 大于10 ||echo 小于10
pause>nul
再附一特大數(shù)值的加法運算演示代碼:(先補位)
@echo off&setlocal enabledelayedexpansion
set num1=984322212445613542523552165432136516565135132354123432987619431469731611346143789
set num2=657973265856194306419643120641631361303163006131061301613061130161300613061130
call :lineup num1
call :lineup num2
set/a flag=0
for /l %%i in (1 1 199) do (
set/a var=!num1:~-%%i,1!+!num2:~-%%i,1!+!flag!
set var=0!var!
set flag=!var:~-2,1!
set str=!var:~-1!!str!
)
for /f "delims=0 tokens=*" %%i in ("!str!") do echo %%i
pause>nul
:lineup obj
for /l %%i in (1 1 200) do set %1=0!%1!
call set %1=!%1:~-200!
是不管前面有沒有0都要保證去掉):
演示代碼:
復(fù)制代碼 代碼如下:
@echo off
set Day=1%date:~5,2%
set /a Day-=100
echo %Day%
pause>nul
另外,還可以(在深入運用時,比前一種更有優(yōu)勢):
復(fù)制代碼 代碼如下:
@echo off
set/a day1=%date:~5,1%,day2=%date:~6,1%
set/a day=%day1%*10+%day2%
echo %day%
pause>nul
2、利用set /a(數(shù)值運算 除法中除數(shù)不允許出現(xiàn)0)返回值來設(shè)置數(shù)值運算的進位標(biāo)志;
演示代碼:
@echo off 2>nul 3>nul
set/a num1=7,num2=2
set/a var=%num1%+%num2%
set /a 1/(%var%/10) && echo 大于10 ||echo 小于10
pause>nul
再附一特大數(shù)值的加法運算演示代碼:(先補位)
復(fù)制代碼 代碼如下:
@echo off&setlocal enabledelayedexpansion
set num1=984322212445613542523552165432136516565135132354123432987619431469731611346143789
set num2=657973265856194306419643120641631361303163006131061301613061130161300613061130
call :lineup num1
call :lineup num2
set/a flag=0
for /l %%i in (1 1 199) do (
set/a var=!num1:~-%%i,1!+!num2:~-%%i,1!+!flag!
set var=0!var!
set flag=!var:~-2,1!
set str=!var:~-1!!str!
)
for /f "delims=0 tokens=*" %%i in ("!str!") do echo %%i
pause>nul
:lineup obj
for /l %%i in (1 1 200) do set %1=0!%1!
call set %1=!%1:~-200!
相關(guān)文章
Windows2003下批量添加和導(dǎo)出所有ip BAT腳本
這篇文章主要介紹了Windows2003下批量添加和導(dǎo)出所有ip BAT腳本,本文直接給出代碼實例,需要的朋友可以參考下2015-07-07
批處理復(fù)制文件時保留原目錄結(jié)構(gòu)的幾種方法
這篇文章主要介紹了批處理復(fù)制文件時保留原目錄結(jié)構(gòu)的幾種方法,需要的朋友可以參考下2023-07-07

