【发布时间】:2021-08-22 02:38:12
【问题描述】:
我有一个每天运行的 Windows 批处理文件。希望创建一个具有确切格式名称的文件夹。 我想在文件夹名称中显示工作日,然后出现了一些棘手的问题:
E:\tricks>for /F "skip=1" %a IN ('WMIC Path Win32_LocalTime Get DayOfWeek') do set var=%a
E:\tricks>set var=5
:\tricks>set var=
E:\tricks>set /p b=Name:
Name:
变量“var”似乎已经获得了值“5”,这意味着“星期五”,但变量“var”再次变为“null”。有人可以帮我吗?非常感谢!
代码如下:
for /f "skip=1" %%a IN ('WMIC Path Win32_LocalTime Get DayOfWeek' ) do (set var=%%a)
set /p b=Name:
set mydt=(!)%DATE:~,10%("%var%")《" %b%"》
md %mydt:/=-%
【问题讨论】:
-
不要使用文本图片的链接,将输出作为纯文本放入帖子中
-
处理“丑陋”
wmic输出的方法有很多。在这种特定情况下,只需... do set /a var=%%a即可(带有附加行的错误消息可以使用2>nul重定向)。 -
为什么要使用 Win32_LocalTime 来检索 DayOfWeek,然后使用不太可靠的替代方法来检索 yyyy、MM 和 dd 值。这些值已经可以从同一个 WMI 命令中检索到!您还确定字符
《和》可以用于代码页吗?为什么在%mydt%的值中包含双引号,这些不是 Windows 目录名称中的有效字符? -
@jeb:谢谢,这是我关于stackoverflow的第一个问题,以后会小心的;
-
@Stephan:非常简单实用的方法,谢谢Stephan!
标签: batch-file variables set dayofweek