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ùn)用時,比前一種更有優(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ù)值運(yùn)算 除法中除數(shù)不允許出現(xiàn)0)返回值來設(shè)置數(shù)值運(yùn)算的進(jìn)位標(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ù)值的加法運(yùn)算演示代碼:(先補(bǔ)位)
@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ùn)用時,比前一種更有優(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ù)值運(yùn)算 除法中除數(shù)不允許出現(xiàn)0)返回值來設(shè)置數(shù)值運(yùn)算的進(jìn)位標(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ù)值的加法運(yùn)算演示代碼:(先補(bǔ)位)
復(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)文章
windows下使用bat批量刪除文件(用于內(nèi)存清理)
有時候我們需要刪除固定目錄的一些緩存文件,每次手工太麻煩,windows下可以結(jié)合bat批量刪除一些文件更方便快捷,需要的朋友可以參考一下2023-12-12Windows下通過bat獲取網(wǎng)絡(luò)連線實際名稱,加強(qiáng)IP類設(shè)置腳本的兼容性
在之前的工作中,由于分區(qū)域管理,TCP設(shè)置有差異,所以編寫過很多關(guān)于IP切換的腳本,作為大批量電腦維護(hù)的腳本,最重要的就是兼容性,可不能就測試的那幾臺電腦通過了,然后發(fā)布給同事使用的時候,出現(xiàn)各種狀況2016-02-02Country使 MS-DOS 子系統(tǒng)能使用國際時間、日期、貨幣、大小寫轉(zhuǎn)換和小數(shù)分隔符
Country使 MS-DOS 子系統(tǒng)能使用國際時間、日期、貨幣、大小寫轉(zhuǎn)換和小數(shù)分隔符...2007-09-09Windows命令行bat批處理延遲sleep方法(批處理延時)
這篇文章主要介紹了Windows命令行bat批處理延遲sleep方法,需要的朋友可以參考下2016-02-02