use*_*123 5 windows format date batch-file cmd.exe
我正在尝试读取文件名中包含日期的文件。
问题是当系统中的日期格式为 US 时:mm/dd/yyyy
它不起作用。
对于这种格式:dd/mm/yyyy
它按预期工作。
dd/mm/yyyy
即使系统设置为美国格式,我也需要以这种格式获取日期。
我是批处理新手,不知道如何以所需格式获取日期。
这是我的批处理文件:
for /f "delims=/ tokens=1-3" %%a in ("%date%") do (
rem Lets name our new variable "rdate" for reverse date
set _date=%%a-%%b-%%c
)
set source=%path%.csv
echo %source%
set dest=%path%_%_date%.csv
echo %dest%
Run Code Online (Sandbox Code Playgroud)
解析可能采用各种您不知道的格式的日期听起来是个坏主意。最好以特定格式获取日期,即使这意味着不是纯批处理而是调用 powershell。
C:\Users\tod>for /f %a in ('C:\Windows\System32\WindowsPowershell\v1.0\powershell -Command "Get-Date -format yyyy_MM_dd__HH_mm_ss"') do set datetime=%a
C:\Users\tod>set datetime=2018_01_22__09_15_33
Run Code Online (Sandbox Code Playgroud)
或没有时间。
C:\Users\tod>for /f %a in ('C:\Windows\System32\WindowsPowershell\v1.0\powershell -Command "Get-Date -format yyyy_MM_dd"') do set datetime=%a
C:\Users\tod>set datetime=2018_01_22
C:\Users\tod>
Run Code Online (Sandbox Code Playgroud)
顺便说一下,年/月/日,即 yyyy/mm/dd 格式非常好,因为它在英国和美国都很容易阅读。不用担心它是否像英国一样是 dd/mm/yy。或月/日/年。例如,您首先看到 2018 年,因此您首先知道这是年,然后您知道年之后是月份,然后是日期。
一旦您以您所知道的格式获得该日期(我建议 yyyy/mm/dd 格式),您就可以执行以下操作
C:\Users\tod>echo %datetime:~0,4%
2018
C:\Users\tod>
Run Code Online (Sandbox Code Playgroud)
依此类推..因此您可以将任何变量设置为等于年、月、月中的日期。
添加
如果您不想使用 powershell 并且不介意这仅适用于美国格式的日期。
C:\Users\tod>echo %date%
01/22/2018
C:\Users\tod>echo %date:~0,2%
01
C:\Users\tod>echo %date:~3,2%
22
C:\Users\tod>echo %date:~6,4%
2018
C:\Users\tod>
Run Code Online (Sandbox Code Playgroud)
所以你真的应该能够看到如何做到这一点
set first=%date:~0,2%
set second=%date:~3,2%
set third=%date:~6,4%
C:\Users\tod>set first=%date:~0,2%
C:\Users\tod>set second=%date:~3,2%
C:\Users\tod>set third=%date:~6,4%
C:\Users\tod>echo %first%/%second%/%third%
01/22/2018
C:\Users\tod>echo %second%/%first%/%third%
22/01/2018
C:\Users\tod>
Run Code Online (Sandbox Code Playgroud)
所以你可以说set ukdate=%second%/%first%/%third%
你可以说echo %ukdate%
只有当您知道系统上日期的格式并且知道它是美国时,这种非 powershell 方法才有效。我通常建议不要使用批处理,因为例如,如果操作系统出现新版本,并且命令的输出有点不同,并且您的代码在解析时假定采用特定格式,该怎么办?虽然在这种情况下,批量在某种意义上是整齐的,但有时它可能就像把木棍敲在一起。了解批处理并稍微使用它是一个好主意,但要安装一些其他脚本语言,如 Ruby、Python、Golang 或 NodeJS。但如果您想仅使用批处理来实现此目的,那么就可以了。
归档时间: |
|
查看次数: |
7765 次 |
最近记录: |