Я использую следующую пакетную программу для получения сведений о системном диске.Печать Для значений цикла в текстовом файле - пакетная программа
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1" %%d in (
'wmic logicaldisk where drivetype^=3 get deviceid ^| find ":"') do (
for /f "skip=1 tokens=1,* delims=:" %%a in ('fsutil volume diskfree %%d') do (
Call :ConvertBytes %%b GB Gigs
Call :ConvertBytes %%b MB Megs
echo %%d - %%a: !Gigs! GB (^!Megs! MB^)
set s=%%d - %%a: !Gigs! GB (^!Megs! MB^)
echo %s% >>C:\myfile.txt
)
)
pause;
goto :eof
:ConvertBytes bytes unit ret
setlocal
if "%~2" EQU "KB" set val=/1024
if "%~2" EQU "MB" set val=/1024/1024
if "%~2" EQU "GB" set val=/1024/1024/1024
> %temp%\tmp.vbs echo wsh.echo FormatNumber(eval(%~1%val%),0)
for /f "delims=" %%a in (
'cscript //nologo %temp%\tmp.vbs'
) do endlocal & set %~3=%%a
del %temp%\tmp.vbs
Выход этой партии будет:
C: - Total # of bytes : 98 GB (99,900 MB)
C: - Total # of avail free bytes : 32 GB (33,122 MB)
D: - Total # of bytes : 146 GB (150,000 MB)
D: - Total # of avail free bytes : 138 GB (141,728 MB)
E: - Total # of bytes : 222 GB (226,938 MB)
E: - Total # of avail free bytes : 208 GB (213,473 MB)
Press any key to continue . . .
Здесь я пытаюсь написать вывод пакета в текстовый файл. для этого я дал оператор echo %s% >>C:\myfile.txt
внутри цикла for. Но его печать ECHO is off.
в текстовом файле.
Я пытался дать эхо-заявление перед паузой; команда, делая так, что только последняя строка (E: - Total # of avail free bytes : 208 GB (213,473 MB)
) выхода получила запись в текстовом файле.
Как распечатать все 6 строк в текстовом файле.
Совершенный ......... – RobinHood