gpt4 book ai didi

date - 将格式化的日期值存储到命令行的环境变量中

转载 作者:行者123 更新时间:2023-12-04 21:54:22 27 4
gpt4 key购买 nike

我正在尝试将格式化的日期值存储到环境变量中。下面是我的批处理脚本。

set now="`powershell get-date -format \"{yyyy-mm-dd}\"`"

dsjob -run -jobstatus -param current_timestamp=%now% dstage1 TheAge

这是行不通的。我是一名 Unix 专家,我希望有一种比使用 for 循环和提供的其他解决方案更简单的方法。

如何将执行的命令值存储到环境变量中?

最佳答案

对不起。我可以为您提供不同的观点吗?

有几种不同的方法可以获取 YYYY-MM-DD 格式的当前日期,但 powershell 并不是最好的方法。 powershell.exe 程序是一个大约 465 MB 大小的文件,最适合加载一次以执行大型 .ps1 脚本。使用这个程序(包括 powershell 编程语言的所有高级功能)只是为了获取当前日期肯定是一种资源浪费,在慢速机器上可能需要几秒钟。

批处理文件中另一种常用的方法是 wmic,这是一个标准的 Windows 命令,可提供有关计算机及其元素的一系列数据,但它也是一个 495 MB 大小的文件,可执行大量操作并且并不完全快。

第三种选择是使用VBScript 或JScript 脚本;这些是从 XP 开始的所有 Windows 版本上预装的编程语言。在这种情况下,对这些语言的运行时支持是 C、C++ 和 JavaScript 同族的编译器,因此非常高效。 VBScript/JScript 编译器文件 (cscript.exe) 只有 143 MB 大小,并且无疑是获取 YYYY-MM-DD 格式的当前日期的最有效方式,与语言环境设置无关,也就是说,它可以广泛用于各种不同的计算机。

最后一句也暗示了最后一种方法。如果批处理文件将始终在同一台计算机上运行,​​那么您就不需要以前方法的高级功能;您可以直接从 %date% 内部变量中获取日期。此方法是最有效的方法,因为它仅使用内部 Batch 命令。

下面有一个批处理文件,显示了如何使用所有四种先前的方法。如果多次执行此批处理文件,您会发现 powershell 方法恰恰是效率较低的方法。

@echo off
setlocal

rem Get current date in YYYY-MM-DD format, locale independent

rem Powershell method
for /F %%a in ('powershell get-date -format "{yyyy-mm-dd}"') do set "now=%%a"
echo Powershell: %now%
echo/

rem WMIC method
for /F "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "now=%dt:~0,4%-%dt:~4,2%-%dt:~6,2%"
echo WMIC: %now%
echo/

rem JScript method
echo var d=new Date();WScript.Echo(d.getFullYear()+"-"+(101+d.getMonth()).toString().substr(1)+"-"+(100+d.getDate()).toString().substr(1));>now.js
for /F "delims=" %%a in ('now.js') do set "now=%%a"
echo JScript: %now%
echo/


rem Get current date in YYYY-MM-DD format via %date% variable, locale dependent
for /F "tokens=1-3 delims=/" %%a in ("%date%") do set "now=%%c-%%a-%%b"
echo Pure Batch: %now%
echo/

关于date - 将格式化的日期值存储到命令行的环境变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34347820/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com