执行批处理,如何给变量赋值,每次执行输入日期

您的代码是 Windows 批处理脚本。
看起来我想将今天的日期分配给 dd 变量。
更具体地说,您使用 set dd=!date:~0,4 !!date:~5 ,2 !!date:~8 ,2 !在此代码中,因为您想按日期命令收集年、月和日并将其保存在 dd 中。

例如,今天的日期是2 02 3 年1 0月2 7 日,运行这个脚本后,变量dd将变成2 02 3 1 02 7 ,明白了吗?使用!日期:~X,Y!截取字符串时,分别截取年、月、日,然后将它们放在一起。

说实话,我十年前在论坛上看到过这段代码,当时我也在做批量自动保存。
集合和的组合!很酷,但是看太多了就会有这种感觉。
使用时请小心。
date 命令的输出格式可能因系统设置而异。
例如,美国格式 MM/DD/YYYY 可能无法正确截取。

你的写法是直接连接年月日数字,不加分隔符。
如果您想要带有连字符(例如 2 02 3 -1 0-2 7 )的内容,则需要更改字符代码。
例如,使用 !date:~0,4 !-!date:~5 ,2 !-!date:~8 ,2 !。

excel里vba怎么取出当前日期对应的数字给变量?

说白了,编程中处理日期其实很简单。
使用x=date的写法直接赋值是没有问题的。
其实很多新手都会直接这样做,但有些细节还是相当关键的。

我们先来说说最重要的事情。
日期变量或字段通常表示编程中的时间戳。
例如,在 Python 中,您可以像这样获取当前日期和时间: from datetime import datetime; x = 日期时间.now()。
这里,x 是当前时间的日期和时间戳。

还有一点需要注意的是,不同的编程语言或数据库可能对日期的处理方式不同。
例如,在某些语言中,日期可能是字符串类型,因此直接赋值可能会导致类型转换问题。
例如,如果您在 Java 中使用 SimpleDateFormat,则需要确保日期字符串格式符合您的期望。

一开始我以为直接赋值就可以了,后来发现是错误的。
您还需要考虑时区问题。
例如,如果您使用的是全局应用程序,则用户的时区可能会影响日期的显示方式。

等等,还有一件事,当你看到一些高级操作时,比如计算两个日期之间的差异,你需要特别注意。
此时,您可能需要使用特定的函数或方法来保证计算的准确性。

最后提醒一下,虽然直接赋值是基本操作,但是在处理复杂的计算或者时间显示的时候还是需要更加小心,避免因为忽略细节而出现错误。
我认为值得尝试测试实际应用中如何处理日期。

请问bat批处理文件为何无法正常用%date%变量进行赋值?

哈,这个问题我也知道一点。
你提到的setdate和setmonth实际上是VBA(Visual Basic for Applications)中的代码,对吗? VBA 是一种可用于在 Excel 或 Access 中编写小脚本的语言。

首先,日期系统变量将以“年-月-日”的格式将当前日期赋给该变量。
所以你说的date=2 01 8 -09 -01 是正确的。

然后,%date:~8 ,2 % 操作告诉 VBA 截取从 date 的第八个字符开始的两个字符。
由于日期的格式为“年-月-日”,因此第八个字符是月份的第一个字符,接下来的两个字符是月份。
所以%date:~8 ,2 %=09 ,即九月。

但是,setmonth=%date:~5 ,2 % 部分有问题。
您之前将日期值更改为“01 ”,因此日期变为“01 -09 -01 ”。
但这里你想截取从“01 ”的第五个字符开始的两位数字,但是“01 ”只有两个字符,所以你实际上截取了从第一个字符“01 ”开始的两位数字,这导致月份变成了“01 ”。

因此,您会看到该月份分配不正确,因为您截获的起始位置是错误的。
应该从“01 -09 -01 ”的第五个字符开始截取,即从“09 ”开始截取两位数字,这样月份就是“09 ”。

至于echo,确实可以用来显示信息或者查看变量当前的状态。
在VBA中,ECHO ON或ECHO OFF用于控制是否在立即窗口中显示信息。

简而言之,需要调整拦截位置,以便正确分配月份。
你明白了,我希望我解释清楚了。