set 命令特殊用法
更新時間:2009年06月02日 18:34:28 作者:
set 命令特殊用法實現代碼。
1、利用set /a去掉日期等數字前面的0,如:2007-09-25中月份中的09前面的0(當然這個月份是未知的,簡單的說就
是不管前面有沒有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(數值運算 除法中除數不允許出現0)返回值來設置數值運算的進位標志;
演示代碼:
@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
再附一特大數值的加法運算演示代碼:(先補位)
@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都要保證去掉):
演示代碼:
復制代碼 代碼如下:
@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(數值運算 除法中除數不允許出現0)返回值來設置數值運算的進位標志;
演示代碼:
@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
再附一特大數值的加法運算演示代碼:(先補位)
復制代碼 代碼如下:
@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!
相關文章
Windows下通過bat獲取網絡連線實際名稱,加強IP類設置腳本的兼容性
在之前的工作中,由于分區(qū)域管理,TCP設置有差異,所以編寫過很多關于IP切換的腳本,作為大批量電腦維護的腳本,最重要的就是兼容性,可不能就測試的那幾臺電腦通過了,然后發(fā)布給同事使用的時候,出現各種狀況2016-02-02Country使 MS-DOS 子系統(tǒng)能使用國際時間、日期、貨幣、大小寫轉換和小數分隔符
Country使 MS-DOS 子系統(tǒng)能使用國際時間、日期、貨幣、大小寫轉換和小數分隔符...2007-09-09Windows命令行bat批處理延遲sleep方法(批處理延時)
這篇文章主要介紹了Windows命令行bat批處理延遲sleep方法,需要的朋友可以參考下2016-02-02