麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > BAT > 正文

再談DOS批處理下格式化日期字符串的多種方法(詳解)

2020-07-26 20:19:24
字體:
來源:轉載
供稿:網友
在Linux下,簡單的一句話:date '+%Y%m%d-%H%M%S'就可以得到你要的輸出:20120331-064219
可是在windows下,要想得到這個,還是需要費點功夫的。

1. 直接用字符串格式化輸出
比如,如果你的機器上時間的輸出是這樣子的:
c:/>echo %date%-%time%
2012-03-31 星期六- 6:44:02.50
那么,要想得到輸出20120331- 64402,可以這樣截取字符串:
c:/>echo %date:~0,4%%date:~5,2%%date:~8,2%-%time:~0,2%%time:~3,2%%time:~6,2%
20120331- 65406 www.companysz.com
表示取從0位置開始4個字符等等。這個方法不能截斷空格。比較惱火

2.用for語句分斷截取,似乎好點
先看看for的用法:
FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]
optinos
eol=c - 指一個行注釋字符的結尾(就一個)//要忽略以什么字符開頭的行
skip=n - 指在文件開始時忽略的行數。
delims=xxx - 指分隔符集。這個替換了空格和跳格鍵的//指定分割的字符列入delims=;:.使用了";",":","."做分隔
默認分隔符集。
tokens=x,y,m-n - 指每行的哪一個符號被傳遞到每個迭代
的 for 本身。這會導致額外變量名稱的分配。m-n
格式為一個范圍。通過 nth 符號指定 mth。如果
符號字符串中的最后一個字符星號,
那么額外的變量將在最后一個符號解析之后
分配并接受行的保留文本。
usebackq - 指定新語法已在下類情況中使用:
在作為命令執行一個后引號的字符串并且一個單
引號字符為文字字符串命令并允許在 filenameset
中使用雙引號擴起文件名稱。
參照這個用法,我們可以對日期字符串進行格式化輸出:
因為日期結果是:2012-03-31 星期六
因為分隔字符是'-'還有空格' ',所以取3段出來,如:
c:/>for /f "tokens=1-3 delims=- " %1 in ("%date%") do @echo %1%2%3
20120331 www.companysz.com
再看時間:
c:/>echo %time%
6:59:20.38
c:/>for /f "tokens=1-3 delims=.: " %1 in ("%time%") do @echo %1%2%3
65939
兩者一結合起來可以這樣用:

c:/>for /f "tokens=1-3 delims=- " %1 in ("%date%") do set ttt=%1%2%3
c:/>set ttt=20120331
c:/>for /f "tokens=1-3 delims=.: " %1 in ("%time%") do set ttt=%ttt%-%1%2%3
c:/>set ttt=20120331-70131
寫成批處理,就變成這樣(goodtime.bat):
for /f "tokens=1-3 delims=- " %%1 in ("%date%") do set ttt=%%1%%2%%3
for /f "tokens=1-3 delims=.: " %%1 in ("%time%") do set ttt=%ttt%-%%1%%2%%3
echo goodtime=%ttt%
這種方法比較靈活。

3.還有一種,是使用VBScript來定制輸出
wscript.echo year(date) & right( "0" & month(date),2) & right( "0" & day(date),2) & "-" & right( "0" & hour(time),2) & right( "0" & minute(time),2)

結果如下,還是比較有意思的
c:/>cscript /nologo c:/shared/datescript.vbs
20120331-0711
當然這樣還是不太理想,可以寫個批處理,把結果弄到環境變量當中:
mydate2.bat,內容如下:
@echo off
cscript /nologo datescript.vbs >> tmp.txt
for /f "tokens=*" %%1 in (tmp.txt) do set goodtime=%%1
echo goodtime=%goodtime%
總結起來,第3種方法最復雜,目前還不能斷定是否在所有windows平臺都能正確運行,但是結果應該是固定的。不隨著date,time格式變動而變動。但是1和2會依賴于日期時間的格式。僅此而已。
還是linux下比較固定。

本文來自于iihero實驗室
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲五码在线观看视频 | 伦理三区| 亚洲人成网在线观看 | 欧美视屏一区二区 | 免费视频a| 欧美性色生活片免费播放 | 欧美视频一区二区三区在线观看 | 亚洲精品欧美二区三区中文字幕 | 91网站免费观看 | 成人黄色小视频网站 | 国产精品啪一品二区三区粉嫩 | 久草在线视频精品 | 中文字幕观看 | 欧美一区二区三区免费不卡 | www视频免费在线观看 | 久久精品亚洲精品国产欧美kt∨ | 精品久久久久久久久中文字幕 | 久久综合九色综合久久久精品综合 | xnxx 美女19 | 亚洲一区二区三区高清视频 | 久久精品女人天堂av | 斗罗破苍穹在线观看免费完整观看 | 免费视频a | 婷婷中文字幕一区二区三区 | 色人阁五月天 | 福利在线国产 | 91精品久久久久久久久 | 成人羞羞视频在线观看免费 | 免费网站看毛片 | 色网在线视频 | 日韩精品a在线观看 | 欧美精品亚洲人成在线观看 | 亚洲精品成人18久久久久 | 精国产品一区二区三区 | 污黄视频在线播放 | 黄视频网站免费在线观看 | 污污黄| 成人午夜亚洲 | 72pao成人国产永久免费视频 | 久久生活片 | 国产91av视频 |