Re: [问题] bat 抓年份

楼主: giacch   2018-11-11 23:04:29
※ 引述《Kamiya (谷实)》之铭言:
: 作业系统: DOS
: Service Pack: N/A
: 如果错版请再提示我可以去哪里问(我的认知是这是Windows的一部分) 感谢
: 简单的说, 我想要把一个资料夹利用bat自动命名(或者重新命名)为当天的日期
: 希望的格式是yyyymmdd
: 但问题来了
: 就我电脑的设定, 如果我 echo %date%
: 会得到 11/11/18
: 也就是说如果我直接set yyyy=%date:~0,4%
: 会得到11/1这个很愚蠢的玩意
: (如果我拿来md, 我会得到一个名为11的资料夹以及一个名为1的子资料夹)
: 比较偷懒的作法是取成这样, 20%date:~6,2%
: 但这怎么看起来都不是一个正规的写法
: 理想上, 我应该让电脑自己判断(并且是在不管我的系统设定是什么样的情况下)
: 请问这样的bat我应该怎么写呢?
: 备注: 我试着使用 if lss 但感觉没效,
: 另外, 我系统上的日期格式"可能"是dd/mm/yy
: 推 tacitus: FOR /F "tokens=1-4 delims=/ " %%a IN ("%date%") DO (M 11/11 21:23
: → tacitus: OVE "H:\WindowsImageBackup\980x" "H:\WindowsImageBack 11/11 21:23
: → tacitus: up\980x_%%a%%b%%c %%d") 11/11 21:24
: → tacitus: 这是我以前在 Windows 7 时候用的, 但没多久就放弃了~ 11/11 21:26
: 推 tacitus: 以今日而言会改成这样: 980x_20181111 周日 11/11 21:29
: 问题就在于每一台电脑的日期格式都不一样了(除非进去reg暴力改?)
: 推 tacitus: date 结果是这样: 2018/11/11 周日, 就拆成四个变量来用 11/11 21:38
: → tacitus: 这个我就不了解了, 我一直都仅有单一台电脑, 没用过别的 11/11 21:39
: 还是很谢谢你热心回答
: ※ 编辑: Kamiya (1.171.206.167), 11/11/2018 21:47:04
: → Ricestone: 用powershell写的话,有-Format,或者-Year可以直接用 11/11 21:47
: → Ricestone: 我有点弄错了,它的-Year不是那意思 11/11 21:52
: 推 Qorce: 可用WMI捞出年月日 11/11 21:54
: → Qorce: WMIC Path Win32_LocalTime Get Day^,Month^,Year 11/11 21:54
: → Qorce: 当然最简单还是powershell啦.. 11/11 21:55
: 推 Qorce: Get-Date -Format 'yyyyMMdd' 11/11 21:57
这是我抓日期时间的方式
SET STAMP=%DATE:~0,10%%TIME%
SET STAMP=%STAMP: =0%
SET STAMP=%STAMP:/=%
SET STAMP=%STAMP:-=%
SET STAMP=%STAMP:.=%
SET STAMP=%STAMP::=%
SET STAMP=%STAMP:~0,14%
没办法自动判断年月日的顺序
另外这网页有 VBScript 与 WMIC 的范例
https://ss64.com/nt/syntax-getdate.html

Links booklink

Contact Us: admin [ a t ] ucptt.com