返回

如何在 Windows 命令行中获取适用于文件/文件夹名称的当前日期/时间?

windows

在 Windows 命令行中获取当前日期/时间以适用于文件/文件夹名称的格式

引言

在 Windows 命令行中获取当前日期和时间对于自动化任务至关重要,例如管理文件和文件夹。本文将指导你如何获取当前日期和时间,并将其转换为适用于文件或文件夹名称的格式。

获取当前日期和时间

在 Windows 命令行中获取当前日期和时间有几种方法:

  • 使用 datetime 命令:
date
time

格式化日期和时间

默认情况下,datetime 命令输出的格式并不适用于文件或文件夹名称。我们可以使用以下方法对其进行格式化:

  • 格式化日期:
forfiles /d %date% /c "cmd /c echo %date:~10,4%-%date:~7,2%-%date:~4,2%"
  • 格式化时间:
for /f "tokens=1-3 delims=:" %i in ("%time%") do @echo %i

组合日期和时间

将格式化的日期和时间组合成一个适合文件或文件夹名称的字符串:

set datetime=%date:~10,4%-%date:~7,2%-%date:~4,2%_%time:~0,2%-%time:~3,2%-%time:~6,2%

示例

以下批处理文件使用上述命令在 Windows 命令行中获取当前日期和时间并将其放入文件名中:

@echo off
set datetime=%date:~10,4%-%date:~7,2%-%date:~4,2%_%time:~0,2%-%time:~3,2%-%time:~6,2%
echo current datetime: %datetime%
pause > "%datetime%.txt"

结论

获取当前日期和时间并将其转换为适用于文件或文件夹名称的格式非常简单。通过使用 datetimeforfilesfor 命令,你可以轻松地创建所需格式的日期和时间字符串。

常见问题解答

  1. 如何仅获取日期而不获取时间?
echo %date:~10,4%-%date:~7,2%-%date:~4,2%
  1. 如何仅获取时间而不获取日期?
echo %time:~0,2%-%time:~3,2%-%time:~6,2%
  1. 如何将日期和时间格式化为自定义字符串?
    你可以修改 datetime 变量的格式化字符串以创建自定义格式。例如,以下命令将日期和时间格式化为:
set datetime=%date:~10,4%_%date:~7,2%_%date:~4,2%-%time:~0,2%-%time:~3,2%-%time:~6,2%
  1. 如何将日期和时间作为命令行参数传递?
    你可以使用以下语法将日期和时间作为命令行参数传递:
mycommand.exe %date:~10,4%-%date:~7,2%-%date:~4,2% %time:~0,2%-%time:~3,2%-%time:~6,2%
  1. 如何在脚本中使用 datetime 变量?
    可以使用 %datetime% 变量访问格式化的日期和时间字符串。例如,以下命令使用 datetime 变量将文件移动到日期文件夹中:
move myfile.txt "%datetime:~0,10%"