【发布时间】:2016-07-21 15:02:53
【问题描述】:
我将其作为批处理文件运行
/k
cd c:\
for /f "tokens=1-3" %a in ('WMIC LOGICALDISK GET FreeSpace^,Name^,Size ^|FINDSTR /I /V "Name"') do @echo wsh.echo "%b" ^& " free=" ^& FormatNumber^(cdbl^(%a^)/1024/1024/1024, 2^)^& " GiB"^& " size=" ^& FormatNumber^(cdbl^(%c^)/1024/1024/1024, 2^)^& " GiB" > %temp%\tmp.vbs & @if not "%c"=="" @echo( & @cscript //nologo %temp%\tmp.vbs & del %temp%\tmp.vbs
pause
当我在 CMD 中单独运行 for 循环时,它工作得很好。但是当我尝试在批处理文件中运行它时,它会在我获取信息之前关闭 CMD。它也无法实际将目录更改为 c:\,但只有在将 for 循环添加到批处理文件后。我是否需要用一些东西预先修复循环,以便 CMD 知道如何处理它?
【问题讨论】:
标签: windows batch-file cmd space drive