【发布时间】:2013-11-29 13:49:40
【问题描述】:
我有一个批处理文件,它的内容是:
SETLOCAL enabledelayedexpansion
SET /A FT=500
FOR /F "skip=1 tokens=1-6" %%A IN ('START "" /wait WMIC Path Win32_LocalTime Get Day^,Hour^,Minute^,Month^,Second^,Year
/Format:table ') DO (
IF NOT !FT!==500 GOTO proceed
SET FD=%%F-%%D-%%A
SET FT=%%B:%%C:%%E
:proceed
SET /A FX="DS"
)
echo %FD% %FT% : %* >> "%LOGFILE%"
endlocal
最初是一行
FOR /F "skip=1 tokens=1-6" %%A IN ('START "" /wait WMIC Path Win32_LocalTime Get Day^,Hour^,Minute^,Month^,Second^,Year
/Format:table ')
曾经
FOR /F "skip=1 tokens=1-6" %%A IN ('WMIC Path Win32_LocalTime Get Day^,Hour^,Minute^,Month^,Second^,Year
/Format:table ')
但是由于在批处理中运行 WMIC 命令导致进程挂起,因此我想在新的 CMD 窗口上运行 WMIC 命令,这似乎解决了挂起问题,但现在运行 WMIC 命令的子窗口的内容不传递给父窗口。 (即)日志文件的输出只是“500”(FT 的值),而不是在 For 循环中更改的 FT 的值,由于某种原因,它只是跳过了 for 循环。
任何想法或建议为什么会发生这种情况?
我将非常感谢任何建议。
非常感谢。
【问题讨论】:
标签: batch-file for-loop cmd wmic