时间戳处理方法

Windows平台

PowerShell

用"PowerShell"处理时间戳通过管道命令创建目录后,目录名后带回车符,在"Bash Shell"通过"ls"命令可以查看出来

1
  (Get-Date -Format "yyyyMMddHHmmss")
1
  (Get-Date -Format "yyyyMMddHHmmss") | Out-File timestamp.txt
1
  date +%Y%m%d%H%M%S

cmd

该脚本下载链接:timestamp.bat

1
2
3
4
5
6
7
@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"

set "timestamp=%YY%%MM%%DD%%HH%%Min%%Sec%"
echo %timestamp% | clip

当我们理解每个参数时,我们可以更好地理解脚本的功能。下面是对每个参数的详细解释:

  1. `for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"`

    • `for /f` 是一个用于循环读取文件或命令输出的命令。
    • `"tokens=2 delims=="` 指定了分隔符为等号("=")并且提取第二个token(即等号后面的部分)。
    • `%%a` 是一个循环变量,用于存储每次循环中被提取的值。
    • `('wmic OS Get localdatetime /value')` 是要执行的命令,它使用`wmic`命令获取当前操作系统的本地日期和时间信息。
    • `do set "dt=%%a"` 是在循环每次迭代时执行的命令,它将提取的日期和时间值保存到变量`dt`中。
  2. `set "YY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"`

    • `set` 命令用于设置变量的值。
    • `%dt:~0,4%` 是一个字符串切片操作,用于从变量`dt`中提取指定位置的字符。这里提取的是从索引0开始的4个字符,即年份部分。
    • `&` 是用于在一行中执行多个命令的分隔符。
    • `set "YY=%dt:~0,4%"` 将提取的年份值存储到变量`YY`中。
  3. `set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"`

    • `%dt:~8,2%`、`%dt:~10,2%` 和 `%dt:~12,2%` 分别提取了从索引8开始的2个字符(小时)、从索引10开始的2个字符(分钟)和从索引12开始的2个字符(秒钟)。
    • 这三个部分分别将提取的小时、分钟和秒钟值存储到变量`HH`、`Min`和`Sec`中。
  4. `set "timestamp=%YY%%MM%%DD%%HH%%Min%%Sec%"`

    • `%%YY%%MM%%DD%%HH%%Min%%Sec%` 将之前提取的年月日时分秒拼接起来,形成一个六位数的时间戳。
    • 将拼接的结果保存到`timestamp`变量中。
  5. `echo %timestamp% | clip`

    • `echo` 命令用于在控制台输出文本。
    • `%timestamp%` 输出变量`timestamp`的值,即生成的时间戳。
  6. `echo %timestamp% | clip`
  • `echo` 命令用于在控制台输出文本。
  • `%timestamp%` 输出变量 `timestamp` 的值,即生成的时间戳。

`|` 是管道符号,用于将命令的输出发送到另一个命令作为输入。 `clip` 命令用于将输出文本复制到剪贴板中,这样可以方便地粘贴使用。

Linxu平台

Shell

1
  date +%Y%m%d%H%M%S
1
  date +%Y%m%d%H%M%S | xargs mkdir
1
  date +%Y%m%d%H%M%S > timestamp.txt
Licensed under CC BY-NC-SA 4.0