问题描述
我有一个每天运行的 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:/=-%
解决方法
你观察一个for循环的输出,当你看到两个赋值时,那么FOR循环两次,因为wmic命令的输出有一个特殊的行尾。
您可以通过在第一次分配后打破循环来修复它。
for /f "skip=1" %%a IN ('WMIC Path Win32_LocalTime Get DayOfWeek' ) do (
set var=%%a
goto :break
)
:break