Проверка свободного места на диске windows cmd

Is there a way to get the amount of free diskspace of a disk or a folder in a CMD without having to install some thirdparty applications? I have a CMD that copies a big file to a given directory and

You can avoid the commas by using /-C on the DIR command.

FOR /F "usebackq tokens=3" %%s IN (`DIR C: /-C /-O /W`) DO (
    SET FREE_SPACE=%%s
)
ECHO FREE_SPACE is %FREE_SPACE%

If you want to compare the available space to the space needed, you could do something like the following. I specified the number with thousands separator, then removed them. It is difficult to grasp the number without commas. The SET /A is nice, but it stops working with large numbers.

SET EXITCODE=0
SET NEEDED=100,000,000
SET NEEDED=%NEEDED:,=%

IF %FREE_SPACE% LSS %NEEDED% (
    ECHO Not enough.
    SET EXITCODE=1
)
EXIT /B %EXITCODE%

UPDATE:

Much has changed since 2014. Here is a better answer. It uses PowerShell which is available on all currently supported Microsoft Windows systems.

The code below would be much clearer and easier to understand if the script were written in PowerShell without using cmd.exe as a wrapper. If you are using PowerShell Core, change powershell to pwsh.

SET "NEEDED=100,000,000"
SET "NEEDED=%NEEDED:,=%"

powershell -NoLogo -NoProfile -Command ^
    $Free = (Get-PSDrive -Name 'C').Free; ^
    if ($Free -lt [int64]%NEEDED%) { exit $true } else { exit $false }
IF ERRORLEVEL 1 (
    ECHO "Not enough disk space available."
) else (
    ECHO "Available disk space is adequate."
)

Вы тут: Главная Windows diskusage vs. dfp: анализ занятого места на диске из командной строки

В предновогодних инсайдерских сборках Windows 10 20277 и 21277 появилась консольная утилита diskusage для анализа дискового пространства. Сегодня я разберу некоторые нюансы работы новой утилиты и поделюсь с вами результатами ее испытаний в сравнении с утилитой dfp.

Предвосхищая вопрос, diskusage работает и в предыдущих версиях Windows 10, если перекинуть в них исполняемый файл и MUI-ресурсы (проверялось на 20H2).

[+] Сегодня в программе

Параметры командной строки и примеры команд

Утилита обладает развесистым списком ключей, причем в двух вариантах (для публикации я выбрал длинные, но понятные). Поскольку речь о предварительной версии, все может поменяться в будущем.

diskusage

Если путь не указан, по умолчанию утилита рекурсивно сканирует начиная с текущей папки. Отмечу, что я практически всегда использовал ключи /humanReadable /skipReparse помимо прочих. Первый отображает размеры в GB/MB нежели только в байтах, а второй я разберу ниже.

В справке не хватает примеров, но я восполню пробел этой статьей. Парочка для затравки:

  • Показать 25 самых больших папок на диске C.
    diskusage C: /TopDirectory=25 /humanReadable /skipReparse
  • Показать 30 самых больших файлов в папке Загрузки наряду с датой их создания.
    diskusage "%userprofile%Downloads" /TopFile=30 /displayFlag=0x080 /humanReadable /skipReparse

Отмечу несколько нюансов diskusage в сравнении с dfp, которая давно исключена из поставки Windows, хотя до сих пор прекрасно работает и входит в мой арсенал.

Определение размера системных файлов и зарезервированного пространства

Ключ /systemAndReserve. Логично было бы добавлять этот параметр к первоначальному сканированию системного диска, но пока ключ не срабатывает в сочетании с некоторыми другими. Если смотреть отдельно, то быстрее всего результат получается, если натравить утилиту на пустую папку.

diskusage C:new /systemAndReserve /humanReadable
         SizeOnDisk                    Files  Directory path
                  0  (  0.0 KB)            0  C:new
     20 293 710 083  ( 18.9 GB)           47  [System Files and Reserved Space]
168 317 841 408(156.8 GB)/254 588 350 464(156.8 GB)  66.1% of disk in use

Сведения отображаются в конце вывода. Утилита показывает 18.9GB. Это сильно расходится со сводкой в Параметрах, но картина проясняется при изучении подробностей.

diskusage

Судя по всему, значение складывается из размера зарезервированного пространства и теневых копий (точек восстановления). Объем зарезервированного пространства и так можно посмотреть из консоли с fsutil, см. статью по ссылке↑ А к теневым копиям я еще вернусь.

Переход по символическим ссылкам и соединениям

Утилита подсчитывает размер папок, в которые ведут символические ссылки и соединения. Это – поведение по умолчанию, а выключается оно ключом /skipReparse. На мой взгляд, стоило сделать наоборот. У меня при первом тестовом запуске diskusage полезла в теневые копии по ссылке, что сделало анализ бесполезным :)

Не самая ценная фича для анализа отдельно взятого диска, но сценарии под нее найдутся, наверное.

Подсчет размера только одной жесткой ссылки

Утилита dfp ведет себя так же. Однако diskusage умеет считать и размер всех жестких ссылок с ключом /allLinks. Большой практической ценности это не несет, но для исследований бывает полезно. Ниже я разверну этот тезис на примере.

Анализ файлов

Ключ /TopFile. Он позволяет выявить самые большие файлы. В утилите dfp для анализа на уровне файлов служит ключ /all.

Фильтры по именам и размерам

Ключи /nameFilter для имен и /minSizeOnDisk, /minFileSize для размеров папок. Другими словами, можно выводить папки и/или файлы, размер которых превышает заданный порог.

Топ-5 файлов размером более 10GB:

diskusage E:Movies /minSizeOnDisk=10000000000 /TopFile=5 /humanReadable /skipReparse

Топ-5 файлов mp4:

diskusage E:Movies /nameFilter=*.mp4 /TopFile=5 /humanReadable /skipReparse 

Вывод столбцов с датами создания, изменения и доступа

Ключ /displayFlag. Пример в начале статьи.


Пожалуй, последние три пункта в списке наиболее полезны на практике. Из остального отмечу вывод в формате CSV и параметры запуска в… INI-файле, в 2021 году:)

Замечу, что в отличие от dfp, в новой утилите нет снимков, позволяющих быстро выявлять повторно засоряющиеся папки.

Скорость работы и результаты анализа

Практическое сравнение показало высокую скорость работы diskusage и более осмысленные результаты.

У меня подход к анализу с dfp простой — сначала я рекурсивно анализирую топ-25 из корня диска, потом выбираю папки из топа для более пристального изучения. Это обусловлено тем, что при первом запуске много капитанства – корень диска, папки Windows, Users и т.д.

На моем системном диске занято 150GB. Первичный анализ dfp занял 111 секунд.

dfp /b /top 25 /elapsed /study {largest} C:

Size On Disk    Files  Folders Path
      137.5G   658033   158499 C:
       64.1G   226614    43550 C:Users
       63.0G   217951    37544 C:UsersVadim
       34.1G     7360      426 C:UsersVadimDownloads
       24.1G   301184    96431 C:Windows
       15.9G   198613    34846 C:UsersVadimAppData
       12.8G   174917    31220 C:UsersVadimAppDataLocal
       11.6G       31       17 C:System Volume Information
       10.7G    97674    12828 C:Program Files
       10.3G      695      328 C:UsersVadimDocuments
        9.8G    13018     3422 C:ProgramData
        9.1G    76806    37420 C:WindowsWinSxS
        8.1G     8510     2342 C:ProgramDataMicrosoft
        7.2G    82213     7694 C:Program FilesWindowsApps
        6.9G    22553     3265 C:WindowsSystem32
        6.8G    18443     2092 C:Program Files (x86)
        5.7G       90      154 C:UsersVadimDocumentsWPR Files
        4.8G    29596     3568 C:UsersVadimAppDataLocalMicrosoft
        4.2G      945       85 C:iso
        4.2G      861       71 C:isosources
        4.1G        6        3 C:WindowsLiveKernelReports
        4.1G     3572     1386 C:ProgramDataMicrosoftWindows
        4.0G        3        4 C:UsersVadimDocumentsVirtual Machines
        4.0G        3        3 C:UsersVadimDocumentsVirtual MachinesWin10
        4.0G        3        1 C:UsersVadimDocumentsVirtual MachinesWin10Virtual Machines

Схожий анализ diskusage занял 39 секунд.

diskusage C: /humanReadable /skipReparse /TopDirectory=25
        SizeOnDisk                    Files           SizePerDir              Directory path
     36 656 173 056  ( 34.1 GB)        7 360       28 660 928 512  ( 26.7 GB)  C:UsersVadimDownloads
    136 884 260 864  (127.5 GB)      618 167        6 728 695 808  (  6.3 GB)  C:
      6 164 135 936  (  5.7 GB)           90        5 904 556 032  (  5.5 GB)  C:UsersVadimDocumentsWPR Files
      4 390 891 520  (  4.1 GB)            6        4 389 044 224  (  4.1 GB)  C:WindowsLiveKernelReports
      4 468 154 368  (  4.2 GB)          861        4 373 553 152  (  4.1 GB)  C:isosources
      4 299 321 344  (  4.0 GB)            3        4 299 321 344  (  4.0 GB)  C:UsersVadimDocumentsVirtual MachinesWin10Virtual Machines
      4 160 749 568  (  3.9 GB)            1        4 160 749 568  (  3.9 GB)  C:ProgramDataMicrosoftWindowsHyper-VVirtual Machines57269E6F-58C0-4826-AD96-76BAFDE889CD
      2 791 686 144  (  2.6 GB)            8        2 791 686 144  (  2.6 GB)  C:UsersVadimDownloadsODTOfficeData16.0.13231.20262
      2 416 443 392  (  2.3 GB)           35        2 416 443 392  (  2.3 GB)  C:ProgramDataMicrosoftDiagnosisETLLogs
      2 470 723 584  (  2.3 GB)        1 135        2 361 192 448  (  2.2 GB)  C:UsersVadimDownloadsTelegram Desktop
      1 773 436 928  (  1.7 GB)            2        1 773 436 928  (  1.7 GB)  C:UsersVadimMusicplaylists
      1 496 182 784  (  1.4 GB)          323        1 325 723 648  (  1.2 GB)  C:WindowsInstaller
      1 172 525 056  (  1.1 GB)            3        1 172 525 056  (  1.1 GB)  C:UsersVadimAppDataLocalTechSmithSnagItCrashDumps
      1 166 528 512  (  1.1 GB)           95        1 165 533 184  (  1.1 GB)  C:ProgramDataMicrosoftSearchDataApplicationsWindows
      5 471 752 192  (  5.1 GB)       12 553          973 971 456  (928.9 MB)  C:WindowsSystem32
        886 448 128  (845.4 MB)          894          886 448 128  (845.4 MB)  C:UsersVadimAppDataLocalMicrosoftOffice16.0OfficeFileCache
      1 780 797 440  (  1.7 GB)        3 020          863 371 264  (823.4 MB)  C:Program Files (x86)Microsoft OfficerootOffice16
        773 963 776  (738.1 MB)           84          773 963 776  (738.1 MB)  C:WindowsSystem32DriverStoreFileRepositorynvlt.inf_amd64_5e2cc60b5ece0c53
        656 900 096  (626.5 MB)           34          656 896 000  (626.5 MB)  C:UsersVadimAppDataLocalMicrosoftWindowsExplorer
        907 816 960  (865.8 MB)       60 964          608 763 904  (580.6 MB)  C:WindowsservicingLCUPackage_for_RollupFix~31bf3856ad364e35~amd64~~19041.685.1.6
        840 912 896  (802.0 MB)       59 081          593 412 096  (565.9 MB)  C:WindowsservicingLCUPackage_for_RollupFix~31bf3856ad364e35~amd64~~19041.662.1.10
        849 870 848  (810.5 MB)       55 488          573 169 664  (546.6 MB)  C:WindowsservicingLCUPackage_for_RollupFix~31bf3856ad364e35~amd64~~19041.630.1.6
        536 915 968  (512.0 MB)          568          521 830 400  (497.7 MB)  C:UsersVadimAppDataLocalPackagesCanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgscLocalStaterootfsvarcacheaptarchives
        511 778 816  (488.1 MB)           88          511 778 816  (488.1 MB)  C:UsersVadimOneDriveMusic
        524 681 216  (500.4 MB)          527          500 322 304  (477.1 MB)  C:WindowsSoftwareDistributionDownloadbaa66f28726f701d6508d16b26235240

Сопоставляя результаты, можно увидеть ряд совпадений. Но очевидно, что у diskusage вывод топ-25 лучше конкретизирован. Однако в нем есть и странности.

Например, dfp четко показывает размер папки System Volume Information с теневыми копиями. А diskusage в ней ничего не видит, поэтому в топе ее нет. Точнее, не видит от имени администратора, но прозревает при запуске от имени системы.

Дальнейшие эксперименты подтвердили, что diskusage не способна оценивать дисковое пространство в папках, в которые у администратора нет доступа.

Это существенно снижает ценность анализа, но пока спишем на предварительную версию.

Подсчет размера папок с учетом и без учета жестких ссылок

Размер папки WinSxS долго волновал умы пользователей Windows :) Постоянные читатели блога помнят мою разъяснительную работу с анализом хранилища компонентов. Повторюсь, что DISM фактически показывает объем папки Windows без учета и с учетом жестких ссылок (строки выделены).

Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

Component Store (WinSxS) information:

Windows Explorer Reported Size of Component Store : 9.94 GB

Actual Size of Component Store : 9.65 GB

    Shared with Windows : 5.64 GB
    Backups and Disabled Features : 4.01 GB
    Cache and Temporary Data :  0 bytes

Date of Last Cleanup : 2020-12-21 15:53:59

Number of Reclaimable Packages : 9
Component Store Cleanup Recommended : Yes

Утилита diskusage предлагает свой взгляд на этот вопрос. По умолчанию она считает размер только одного экземпляра жесткой ссылки, но с ключом /allLinks учитывает все экземпляры.

Ниже фрагмент вывода двух команд, анализирующих системный диск. В обоих случаях ключ /maxDepth=1 ограничивает глубину вывода одной папкой, т.е. показывает только папки в корне диска. Из результатов я убрал все кроме папки Windows.

diskusage C: /maxDepth=1 /humanReadable /skipReparse /TopDirectory=25
         SizeOnDisk                    Files  Directory path
     21 543 395 328  ( 20.1 GB)      263 633  C:Windows

diskusage C: /maxDepth=1 /humanReadable /skipReparse /TopDirectory=25 /allLinks 
         SizeOnDisk                    Files  Directory path
     28 009 570 304  ( 26.1 GB)      300 827  C:Windows

Утилита оценивает объем жестких ссылок в папке Windows в 26.1-20.1=6GB, что близко к оценке DISM в 5.64GB. Заодно мы видим количество жестких ссылок — утилита насчитала 37 194, что тоже полезно для исследований. В принципе, можно скриптовать перебор файлов с fsutil, и я когда-то такое делал, но с diskusage явно проще.

Заключение

Я в курсе, что многие читатели предпочитают для анализа дискового пространства приложения с графическим интерфейсом — WinDirStat, Scanner и прочие. Но консольные утилиты очень удобны для удаленной диагностики, а встроенные — незаменимы в ограниченной корпоративной среде. В моей практике dfp вытеснила Scanner даже в домашних условиях.

Причина выпиливания dfp из Windows 10 так и осталась загадкой. Теперь Microsoft возвращает в состав ОС полезный диагностический инструмент. Правда, в стабильную версию он, видимо, попадет только осенью 2021 года, но лучше поздно, чем никогда.

А чем пользуетесь вы?

Неплохой скрипт. Только будет требовать повышенных прав запуска в ОС >= Vista с UAC.

Особенно понравился момент сравнения меня с яндексом ))

Цитата
Сообщение от denisk37
Посмотреть сообщение

перевод в Gb ведется тупо обрезанием последних 9-ти цифорок.

Дам Вам еще пищу для размышлений.
Только что написал от себя (хоть и деревянный), но рабочий скрипт поразрядного деления (с разг. «деление в столбик»). Т.е. еще другими словами: обход ограничения CMD на предельное значение числового типа данных.
Можете воспользоваться наработкой:

StrDiv.CMD

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
@echo off
SetLocal EnableDelayedExpansion
::Делимое
set Num1=16261316608
::Делитель
Set Num2=1024
::Макс. кол-во знаков после запятой в результате
Set MaxZ=2
 
 
set /a Num1_pos=-1
 
:AddNum1
set /a Num1_pos+=1
::если строка закончилась
if "!Num1:~%Num1_pos%,1!"=="" Goto AfterZiro
Set Num1_part=%Num1_part%!Num1:~%Num1_pos%,1!
if %Num1_part%==00 Set Num1_part=0
Call :TryDiv
Goto AddNum1
 
:AfterZiro
if %Num1_part%==0 goto Div_End
if %MaxZ% neq 0 Set ResultAll=%ResultAll%.
Set Zero_Marker=true
 
:AddZiro
Set /A MaxZ-=1
if %MaxZ% LSS 0 Goto Div_End
echo %Num1_part%
if %Num1_part%==0 goto Div_End
Set Num1_part=%Num1_part%0
Call :TryDiv
Goto AddZiro
 
:Div_End
echo %ResultAll%
 
pause
Goto :eof
 
:TryDiv
Set /a Result=Num1_part / Num2
echo %Num1_part%-%result%
if %Result% neq 0 (
  Set ResultAll=%ResultAll%%Result%
  Set /A Num1_part=Num1_part - Result * Num2
) else (if "%ResultAll%" neq "" if not Defined Zero_Marker Set ResultAll=%ResultAll%0)
Exit /B

И для Вас еще пару идей, которые думаю будет интересно реализовать:

1) такой скрипт не требует повышения прав:

Bash
1
2
3
4
5
6
7
8
@echo off
for /f "skip=1 tokens=1-3" %%i in ('2^>nul ^
WMIC LogicalDisk ^
WHERE "DriveType='3'" ^
GET Name^, Size^, FreeSpace') do (
  echo %%i-%%j-%%k
)
pause

Где что, разберетесь. Здесь требуется красивый перевод в гигабайты.
Лучше конечно постепенно делить на 1024 и смотреть сколько цифр остается (соответственно такой префикс и подставлять).

2) такой скрипт тоже требует повышенных прав, но он показывает в единицах, уже сконвертированных к приемлемым величинам:

Алгоритм:
1. Берете предыдущую WMIC, прогоняете каждый том под циклом, подставляя в такой текст
select volume c:
detail volume
select volume d:
detail volume
и т.д. постепенно формируете внешний текстовой файл.
2. Выполняете команду

Bash
1
2
3
diskpart /s имя текстового файла сценария
::Или 
type scenario.txt | diskpart | findstr "Емкость Свободное"

3. Результат парсите по две строки.
Уфф. Вообщем, по-разному можно.

You can avoid the commas by using /-C on the DIR command.

FOR /F "usebackq tokens=3" %%s IN (`DIR C: /-C /-O /W`) DO (
    SET FREE_SPACE=%%s
)
ECHO FREE_SPACE is %FREE_SPACE%

If you want to compare the available space to the space needed, you could do something like the following. I specified the number with thousands separator, then removed them. It is difficult to grasp the number without commas. The SET /A is nice, but it stops working with large numbers.

SET EXITCODE=0
SET NEEDED=100,000,000
SET NEEDED=%NEEDED:,=%

IF %FREE_SPACE% LSS %NEEDED% (
    ECHO Not enough.
    SET EXITCODE=1
)
EXIT /B %EXITCODE%

UPDATE:

Much has changed since 2014. Here is a better answer. It uses PowerShell which is available on all currently supported Microsoft Windows systems.

The code below would be much clearer and easier to understand if the script were written in PowerShell without using cmd.exe as a wrapper. If you are using PowerShell Core, change powershell to pwsh.

SET "NEEDED=100,000,000"
SET "NEEDED=%NEEDED:,=%"

powershell -NoLogo -NoProfile -Command ^
    $Free = (Get-PSDrive -Name 'C').Free; ^
    if ($Free -lt [int64]%NEEDED%) { exit $true } else { exit $false }
IF ERRORLEVEL 1 (
    ECHO "Not enough disk space available."
) else (
    ECHO "Available disk space is adequate."
)

You can avoid the commas by using /-C on the DIR command.

FOR /F "usebackq tokens=3" %%s IN (`DIR C: /-C /-O /W`) DO (
    SET FREE_SPACE=%%s
)
ECHO FREE_SPACE is %FREE_SPACE%

If you want to compare the available space to the space needed, you could do something like the following. I specified the number with thousands separator, then removed them. It is difficult to grasp the number without commas. The SET /A is nice, but it stops working with large numbers.

SET EXITCODE=0
SET NEEDED=100,000,000
SET NEEDED=%NEEDED:,=%

IF %FREE_SPACE% LSS %NEEDED% (
    ECHO Not enough.
    SET EXITCODE=1
)
EXIT /B %EXITCODE%

UPDATE:

Much has changed since 2014. Here is a better answer. It uses PowerShell which is available on all currently supported Microsoft Windows systems.

The code below would be much clearer and easier to understand if the script were written in PowerShell without using cmd.exe as a wrapper. If you are using PowerShell Core, change powershell to pwsh.

SET "NEEDED=100,000,000"
SET "NEEDED=%NEEDED:,=%"

powershell -NoLogo -NoProfile -Command ^
    $Free = (Get-PSDrive -Name 'C').Free; ^
    if ($Free -lt [int64]%NEEDED%) { exit $true } else { exit $false }
IF ERRORLEVEL 1 (
    ECHO "Not enough disk space available."
) else (
    ECHO "Available disk space is adequate."
)

В статье пойдет речь об инструменте командной строки в Windows, основных принципах работы с ней и наиболее полезных командах, которые способны существенно облегчить работу с операционной системой.

Оглавление

  • Командная строка в Windows: CMD и PowerShell
  • Как открыть командную строку
  • Как вводить cmd команды
    • Как вывести результат команды из CMD в текстовый файл
    • Как применить команду сразу к нескольким файлам
    • Как вызвать подсказку
  • Команды cmd с файлами
    • Стандартные действия с файлами – создание, удаление, копирование и пр.
    • Сравнить два файла – FC и COMP
    • Найти слово в файле – FIND
    • Создать файл определенного размера – FSUTIL FILE CREATENEW
    • Удалить отметку последнего открытия файла – FSUTIL BEHAVIOR SET DISABLELASTACCESS 1
  • Посмотреть информацию о компьютере, ОС и т. п.
    • Проверить свободное место на диске – FSUTIL VOLUME DISKFREE C:
    • Установленные драйверы – DRIVERQUERY
    • Все сведения об операционной системе – SYSTEMINFO
  • Выполнить диагностику Windows
    • Проверить диск на ошибки – CHKDSK
    • Проверка системных файлов – SFC
  • Поменять настройки Windows
    • Включить или отключить гибернацию – POWERCFG /H <ON|OFF>
    • Настройки конфигурации системы – MSCONFIG
    • Редактировать реестр – REGEDIT и REG
  • Сетевые команды CMD
    • Настройка протокола IP – IPCONFIG
    • Узнать имя компьютера – HOSTNAME
    • Диагностика сети: пинг и трассировка – PING, TRACERT, PATHPING

Командная строка в Windows: CMD и PowerShell

Командная строка (она же консоль или интерпретатор команд) – это программа для управления операционной системой посредством ввода специальных текстовых команд. В Windows 10 есть два инструмента командной строки: cmd.exe и PowerShell. И если cmd была еще в самых древних версиях системы, то PowerShell появилась в Windows уже после 2005 года. Она выполняла те же функции, что и cmd, выглядела почти так же, но имела более широкие возможности. У PowerShell свой, отличный от cmd.exe язык, и она рассчитана в основном на работу с так называемыми командлетами, у которых немного другой синтаксис, и почти для каждой команды cmd есть свой аналогичный командлет у PowerShell. Однако все команды cmd можно использовать в их первоначальном виде в PowerShell.

Как открыть командную строку

Есть куча способов вызвать командную строку. Рассмотрим несколько из них. Обратите внимание, что для использования некоторых команд требуется запустить командную строку с правами Администратора, поэтому сразу наматывайте на ус, как это делается.

Вызываем CMD в Widows 10

  • Меню «Пуск» > Из списка программ выбираем «Служебные» > Жмем правой кнопкой мыши по пункту «Командная строка» > Выбираем пункт «Дополнительно», а в нем «Запуск от имени Администратора».
  • Нажмите комбинацию клавиш «Win + R» > в появившемся окне «Выполнить» вбиваем «cmd» и жмем Enter, а если хотим запустить программу с правами Админа, то жмем «Ctrl + Shift + Enter».
  • В Поиске (рядом с меню «Пуск») набираем «Командная строка» или «cmd», и в результатах выбираем вариант запуска программы от Администратора.

Вызываем PowerShell в Widows 10

  • С помощью двух предыдущих способов можно также вызвать и PowerShell, если вписать его название вместо cmd.
  • Правый клик по меню «Пуск» > в выпавшем меню выбираем запуск Windows PowerShell от Администратора.

Как вводить cmd команды

Общий порядок ввода команды в строку следующий:

  1. Сначала вводим основную команду;
  2. Если у нее есть дополнительные параметры, вводим их через пробел и знак слэш — /
  3. Далее, если требуется, прописываем путь к нужному файлу, начиная с корневой директории. Если в названиях промежуточных папок этого пути встречаются пробелы, то весь путь заключаем в кавычки. Например: «C:UsersUSERNAMEDesktopСписок команд cmd.txt»
  4. После того, как мы написали команду со всеми доп. параметрами, нажимаем Enter, чтобы начать ее выполнение.

Не имеет значения, в каком регистре писать команды, но почему-то сложился обычай писать их в верхнем.

Например, чтобы посмотреть список установленных на компьютере драйверов устройств необходимо выполнить команду DRIVERQUERY. Но если вы еще хотите увидеть в этом списке подробную информацию об их состоянии, введите через пробел после команды дополнительный параметр /V. А чтобы эти данные выводились в формате таблицы, пропишите в команде еще один параметр /FO TABLE. Итоговая запись будет выглядеть так: DRIVERQUERY /V /FO TABLE

Как вывести результат команды из CMD в текстовый файл

«>» – Вывод данных результата выполнения команды в отдельный файл.

«>>» – Записать данные результата выполнения команды в конец существующего файла.

Если хотите вывести данные о драйверах не на экран консоли, а в текстовый файл, то после команды со всеми доп. параметрами пропишите знак «>» и далее пропишите путь к файлу.
Пример: DRIVERQUERY /V /FO TABLE > C:UsersLohmachDesktopДрайверы.txt

Если файла не существует, то он будет создан, если такой файл уже есть, то данные в нем перезапишутся.

Для того, чтобы файл не перезаписывался, а дополнялся новыми данными в конце, пропишите знак «>>» перед указанием пути к файлу. Например, выведем в конце нашего файла «Драйверы.txt» список только подписанных драйверов. Прописываем команду: DRIVERQUERY /SI >> C:UsersLohmachDesktopДрайверы.txt

Как применить команду сразу к нескольким файлам

*.* – обращение ко всем файлам каталога
*.txt – обращение ко всем файлам только формата txt

Указав знак * вместо имени конкретного файла, вы сможете одной командой сразу «убить всех зайцев». Например, чтобы переместить все файлы из папки «Работа» на диске C в папку «Все рабочие файлы» на диске D с помощью команды MOVE, сделайте запись в командной строке такого типа: move «C:UsersUSERNAMEДокументыРабота*.*» «D:Все рабочие файлы»

Как вызвать подсказку

Для работы с CMD совсем необязательно знать список всех команд и их свойств. Если ввести в консоли HELP – отобразится полный список cmd команд c их кратким описанием. А чтобы получить подсказку по конкретной команде, введите через пробел после нее /?, и на экран выведется ее описание и варианты дополнительных параметров с примерами.

Пример вызова подсказки

Пример подсказки к команде DRIVERQUERY

В PowerShell вызвать список поддерживаемых cmd команд с помощью HELP уже не получится.

Итак, посмотрим, что полезного можно сделать с командной строкой.

Команды cmd с файлами

У консоли полно команд для удаления, перемещения, копирования, открытия, создания файлов и папок. Но вряд ли они будут вам полезны, если только не накрылась ваша операционка, и с помощью обычных графических средств работать с файлами невозможно. На этот случай приведу вам списочек таких команд. Для большинства из них требуется указать пути к файлам. Рекомендую сверяться с инструкцией как вводить команды.

  • MOVE – перемещает файл из одного места в другое.
  • COPY – копирует файлы/папки в указанное место.
  • DEL или ERASE – удаляет файлы.
  • RD или RMDIR – удаляет папки.
  • DIR – показывает список файлов в заданном каталоге. Выведите подсказку /?, чтобы посмотреть все варианты сортировки файлов.
  • MD или MKDIR – создает новую папку. Если в указанном пути к папке будут отсутствовать промежуточные каталоги, то система их создаст автоматически.
  • PRINT – выведет указанный файл на печать.
  • TYPE – выведет содержимое текстового файла на экран консоли.
  • REN или RENAME – переименует файл или каталог. Команду следует прописать в таком формате: REN «путь к файлу/папке, которую следует переименовать» «новое имя указанного файла/папки».
  • REPLACE – выполняет замену файлов в каталоге. Полезно для синхронизации данных на дисках. Дополнительный параметр /U заменяет в указанном каталоге исходные файлы на новые, если время последнего изменения этих файлов будет различно. Параметр /A добавит в указанный каталог только те файлы, которых нет в другом.

Вышеперечисленные действия, безусловно, удобнее выполнять с помощью файлового проводника Windows, а теперь посмотрим на команды, которым нет аналога в графическом интерфейсе.

FC и COMP – команды сравнивают два файла или группы файлов и выводят на экран результат этого сравнения с кратким сообщением о найденных (или нет) различиях.

FIND – ищет слова/строки в указанном файле (или сразу в нескольких) и выдает строки, в которых они содержатся.

FSUTIL FILE CREATENEW «тут путь файла» [тут размер файла в байтах] – создаст новый файл строго указанного размера. Может пригодиться в разных целях: для теста скорости передачи данных, или чтобы зарезервировать место на диске, забив его файлом нужного размера.

Пример команды fsutil file createnew

Создание файла размером 1Гб командой fsutil file createnew

FSUTIL BEHAVIOR SET DISABLE LASTACCESS 1 – отключает формирование отметки о времени последнего использования файла. Полезно, если вы решили увеличить быстродействие своего компьютера: файлы и папки будут открываться быстрее. Но будьте осторожны: перестанут правильно работать программы для резервного копирования файлов, использующих такие отметки. Снова включить обновление отметок последнего доступа к файлу можно той же командой, изменив 1 на 0.

Посмотреть информацию о компьютере, ОС и т.п.

FSUTIL VOLUME DISKFREE C: – запрос свободного пространства на диске C (можно указать любой другой). Более подробную информацию о распределении пространства на указанном диске вы можете получить по команде fsutil volume allocationreport C:

DRIVERQUERY – выводит на экран список всех драйверов устройств. Наиболее интересные параметры команды:

  • /V – показать подробную информацию о состоянии драйверов.
  • /SI – покажет список только драйверов, имеющих цифровую подпись.

SYSTEMINFO – показывает всю информацию о компьютере: версию ОС, код продукта, инфу о процессоре, объем физической и виртуальной памяти, IP-адрес и прочее.

Выполнить диагностику Windows

CHKDSK (запуск от имени Администратора) – проверяет диск на ошибки. При использовании параметра /f – также исправляет их, а если еще в дополнение к нему указать параметр /r, то система найдет поврежденные сектора на диске и попытается восстановить уцелевшие данные с них. После команды через пробел укажите имя диска, а после него – дополнительные параметры. Учтите, что для проверки диска C потребуется перезагрузка системы. После введения команды CHKDSK C: /f консоль предложит вам выполнить ее.

SFC – Команда используется только в сочетании с дополнительными параметрами:

  • SFC/verifyonly – сканирует систему на предмет поврежденных системных файлов.
  • SFC/scannow – производит восстановление обнаруженных повреждений.

Пример сканирования системы

Сканирование системы командой sfc/verifyonly

Запускать команду необходимо от имени Администратора, а после сканирования перезагрузить систему. Те файлы, которые системе не удалось восстановить, можете поискать в интернете или скопировать из аналогичной ОС той же версии.

Поменять настройки Windows

POWERCFG /H ON – включить режим гибернации.
POWERCFG /H OFF – отключить режим гибернации.

Для использования команды нужны права Администратора. В режиме гибернации компьютер перед отключением системы записывает все данные из оперативной памяти на жесткий диск и при следующем включении компьютера снова загружает их в оперативную память, так что вы можете начать работу с того же места, где ее закончили. Полезно для владельцев ноутбуков, чтобы не потерять несохраненные данные из-за неожиданной разрядки устройства. Если острой необходимости в гибернации на своем компьютере вы не испытываете, то её лучше отключить, т.к. гибернация изнашивает жесткий диск и резервирует на нем значительное пространство, что замедляет работу компьютера. По умолчанию гибернация отключена.

Примечание: если после применения команды, вы не обнаружили пункта «Гибернация» в меню завершения работы компьютера, попробуйте проделать следующий финт ушами (работает в Windows 10):

Клик правой кнопкой мыши по иконке меню «Пуск» > Управление электропитанием > Питание и спящий режим > Дополнительные параметры питания > Действие кнопок питания > Изменения параметров, которые сейчас недоступны > Поставьте галочку в окошке «Режим гибернации» > Сохраните изменения и наслаждайтесь результатом.

После этих манипуляций кнопка «Гибернация» должна появиться в меню «Пуск» наряду с пунктами «спящий режим», «перезагрузка» и «завершение работы».

MSCONFIG – команда открывает окно с настройками конфигурации системы, в котором вы можете выбрать варианты запуска ОС (и определить, какую именно ОС вы хотите загружать по умолчанию, если у вас их установлено несколько), параметры загрузки (например, загрузку в безопасном режиме), управлять работой вспомогательных служб системы (возможно, отключить что-то лишнее), а через раздел «Сервис» вызвать информацию о системе, запустить устранение неполадок Windows, посмотреть и настроить параметры сети, зайти в редактор реестра, восстановить систему из точки восстановления и прочее.

REGEDIT – команда вызывает стандартный редактор реестра Windows regedit.exe. С помощью дополнительного параметра /E удобно делать бэкап всего реестра в отдельный файл. Для этого пропишите в строке regedit /E и путь для файла. Например: regedit /e D:backup.reg

REG – позволяет редактировать реестр прямо в командной строке. Используется только в сочетании с дополнительными ключами, которые пишутся после основной через пробел без слэша. Например, можно сделать бэкап раздела реестра, прописав в консоли REG SAVE или REG EXPORT, далее через пробел путь нужного раздела реестра и через пробел путь к будущему файлу. А с подкомандами RESTORE и IMPORT можно загрузить в реестр данные из файла резервной копии.

Сетевые команды CMD

IPCONFIG – вызывает на экран информацию о вашем сетевом подключении (Ipconfig /all покажет детальные сведения): ваш IP-адрес, маску подсети, основной шлюз, список сетевых адаптеров – все, что требуется для настройки роутера. А в сочетании с доп.параметрами командой можно поменять сетевые настройки и исправить некоторые проблемы подключения.

HOSTNAME – выводит имя компа.

PING – позволяет проверить доступность узла в сети. Отправляет пакет данных к IP-адресу узла и получает от него в ответ пакет тех же данных. Если пакет от узла вернулся с потерями – это может указывать на проблему соединения. Обычно команду используют при проблемах подключения к Интернету. Тогда выполняют пингование какого-нибудь популярного сайта, например Яндекс или Google, для теста качества Интернет-соединения или пингуют IP роутера, чтобы проверить, нет ли проблем в локальной сети. Для начала диагностики, вводим в строку команду, затем IP-адрес узла или имя домена (консоль распознает IP автоматически), нажать Enter, и на экран выведется результат проведенной проверки соединения.

Пример команды ping

Пример пингования сайта lohmach.info

TRACERT – команда выполняет трассировку маршрута данных (так называемых пакетов) до конечного сервера, выводит на экран IP-адреса промежуточных узлов (т.е. всех маршрутизаторов встречающихся на его пути) и время прохождения этого сигнала между ними. Трассировка проводится для диагностики неполадок в сети, т.к. помогает определить, на каком узле прерывается цепь передачи данных.

Пример трассировки

Трассировка маршрута до сайта lohmach.info

PATHPING – сочетает в себе функционал двух предыдущих команд Tracert и Ping, одновременно выполняя трассировку маршрута до конечного IP-узла с отправкой пакетов данных к каждому из промежуточных. Так вы можете увидеть на каком из них происходит больше всего потерь данных.

Три последние команды незаменимы при обнаружении проблем с интернетом. Часто техподдержка провайдера просит предоставить им результат проверок, выполняемых этими командами, особенно PATHPING.

Упражнение 1.

А напоследок давайте потренируемся вводить команды в консоль.

Запустите программу cmd.exe от имени Администратора и введите команду: «SHUTDOWN /s /f /t 30» Нажмите клавишу Enter.

Поздравляю! Вы успешно выполнили упражнение и в полной мере усвоили материал. Больше учиться вам нечему. На этом и закончим наш вводный курс.

█ 03.12.2009 14:45

Есть идеи, как штатными средствами в винде получить список жестких дисков и свободное место на них?

█ 03.12.2009 14:46

Без привилегий администратора

█ 03.12.2009 16:08

DISKPART
DISKPART> list disk

Disk ### Состояние Размер Свободно Дин Gpt
——— ———- ——- ——- — —
Диск 0 Подключен 37 GB 0 B

DISKPART> list volume

Том ### Имя Метка ФС Тип Размер Состояние Сведения
———- — ———— —— ———- ——- ——— ———
Том 0 C NTFS Раздел 10 GB Исправен Системны
Том 1 D NTFS Раздел 28 GB Исправен
Том 2 E KINGSTON FAT32 Съемное ус 3826 MB

========
правда, запускал под админом..
надо проверять

█ 03.12.2009 17:57

если в винде есть vbs (а он практически везде есть), то можно так:
сохранить код ниже в файл с расширением vbs и выполнить
должно работать под любой учеткой и из cmd тоже
результаты гонит на экран, но можно перенаправить куда надо
=============================
strComputer = «.»
Set objWMIService = GetObject(«winmgmts:\» & strComputer & «rootcimv2»)
Set colDiskDrives = objWMIService.ExecQuery(«SELECT * FROM Win32_DiskDrive»)
For Each objDrive In colDiskDrives
strDeviceID = Replace(objDrive.DeviceID, «», «\»)
Set colPartitions = objWMIService.ExecQuery («ASSOCIATORS OF {Win32_DiskDrive.DeviceID=»»» & strDeviceID & «»»} WHERE AssocClass = » & «Win32_DiskDriveToDiskPartition»)
For Each objPartition In colPartitions
Set colLogicalDisks = objWMIService.ExecQuery («ASSOCIATORS OF {Win32_DiskPartition.DeviceID=»»» & objPartition.DeviceID & «»»} WHERE AssocClass = » & «Win32_LogicalDiskToPartition»)
For Each objLogicalDisk In colLogicalDisks
Set colDisks = objWMIService.ExecQuery («Select * from Win32_LogicalDisk Where DeviceID = ‘» & objLogicalDisk.DeviceID & «‘»)
For Each objDisk in colDisks
Wscript.Echo objLogicalDisk.DeviceID & » — » & objDisk.FreeSpace & » byte»
Next
Next
Next
Next
=============================

█ 03.12.2009 21:28

Увы, речь о сохранении файлов тоже не идет :( Да и вырублен часто vbs.
А diskpart у меня вообще что-то не завелся…

█ 04.12.2009 07:09

Олег, сейчас проверил — в Windows XP /2003 есть Diskpart
в Windows 2000 — отсутствует..

█ 04.12.2009 07:12

Да нет, я на терминалке работал, 2003… Такое впечатление, что утилитка просто падала. Но у меня не было админских прав.

█ 04.12.2009 07:28

возможно, из-за прав..
ей много чего можно сделать

C админскими правами в терминальном режиме запускается
==

Цитата:

Для выполнения этой процедуры необходимо входить в группу «Операторы архива» или «Администраторы» на локальном компьютере или получить соответствующие полномочия путем делегирования. Если компьютер присоединен к домену, эту процедуру могут выполнять члены группы «Администраторы домена». При этом по соображениям безопасности рекомендуется использовать команду Запуск от имени.

█ 04.12.2009 09:15

Увы… Имеются только юзерские.

Цитата:

C:>diskpart

Microsoft DiskPart, (
Службам управления дисками не удается завершить эту операцию.

█ 04.12.2009 13:52

Цитата:

OlegON ➤ Увы, речь о сохранении файлов тоже не идет :( Да и вырублен часто vbs.
А diskpart у меня вообще что-то не завелся…

ну чем вам всем так vbs не нравится? :unsure_mini:

команда дир — устроит? состряпай обычный батник — работает для текущего диска
===================
@echo off
chcp 1251 > nul
for /f «tokens=3 delims= » %%A in (‘dir /s/-c ^|find «байт свободно»‘) do (
echo free: %%A
)
chcp 866 > nul
pause
===================

а вот с количеством и буковками дисков надо еще подумать…

Часовой пояс GMT +3, время: 06:09.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.

Понравилась статья? Поделить с друзьями:
  • Проверка с использованием windows defender что это
  • Проверка рейд массива в windows server
  • Проверка реестра windows 10 на ошибки командная строка
  • Проверка реестра windows 10 на ошибки ccleaner
  • Проверка работы системы компьютера windows 10