Форум программистов, компьютерный форум, киберфорум
Наши страницы

Batch (CMD/BAT)

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.83
midc
2 / 2 / 0
Регистрация: 11.10.2012
Сообщений: 34
#1

Что такое "число свободных байтов", возвращаемое командой DIR? - CMD/BAT

11.10.2012, 18:20. Просмотров 2449. Ответов 23
Метки нет (Все метки)

Как это может быть, что в пределах одной сессии командного процессора команда DIR (очень даже воспроизводимо) возвращет разные значения "bytes free"?
Я работаю с DOS / Windows около 20 лет и до вчерашнего дня не имел поняти, что подобное
c:\1>dir c:\fdeappdata\pacrat|findstr free
24 Dir(s) 170,920,792,064 bytes free

c:\1>dir c:\|findstr free
18 Dir(s) 15,617,818,624 bytes free

может в действительности произойти.

Прошу ответить на следующий вопрос:
Что означает число, выводимое командой DIR перед "bytes free" фразой?
Сопутствующие сведения
  • Я о-очень опытный пользователь;
  • findstr просто отсеивает несущественное для данного вопроса;
  • Windows Server 2003.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2012, 18:20
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Что такое "число свободных байтов", возвращаемое командой DIR? (CMD/BAT):

Установить для пользователя значение "FALSE" параметра "PasswordExpires" командой WMIC - CMD/BAT
wmic useraccount where "name='имя_пользователя' " set passwordexpires=false это строка не работает

for /f "delims=" %%b in ('dir !DirName! /b /s /a-d') do () жрёт символы "!" и "^" - CMD/BAT
Добрый день, коллеги. День сегодня убил, но так и не понял что делать, может поможете добрым советом. Кусок батничка: @ECHO OFF...

Почему в начале вывода команды DIR указываются две папки с именами "." и "..", хотя их нигде нет? - CMD/BAT
Привет. Почему в выдаче в начале первые две папки имеют имена "." и "..", хотя их нигде нет?

Как объяснить человеку по-простому что такое "Контроллер Домена"? - Администрирование Windows
Добрый вечер! Возможно Вам этот вопрос покажется забавным, но я тут столкнулся с некоторой сложностью - как по-простому объяснить человеку,...

"." не является внутренней или внешней командой - CMD/BAT
Добрый день! Пытаюсь в cmd выполнить команду ./node_modules/protractor/bin/webdriver-manager update Получаю ошибку "." не...

«"net" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.» - CMD/BAT
Всем привет. Прежде чем задать вопрос поискал в инете и на форумах..но не смог найти ответ. Быть может подскажете.. Собствено...

23
Dragokas
Эксперт WindowsАвтор FAQ
16614 / 6999 / 848
Регистрация: 25.12.2011
Сообщений: 10,795
Записей в блоге: 16
12.10.2012, 01:22 #2
Намек для опытного пользователя: http://www.transl-gunsmoker.ru/2009/12/blog-post_28.html
0
midc
2 / 2 / 0
Регистрация: 11.10.2012
Сообщений: 34
12.10.2012, 02:31  [ТС] #3
>>Как это может быть, что в пределах одной сессии командного процессора команда DIR (очень даже воспроизводимо) возвращет разные значения "bytes free"?

Статья говорит о том как считать. мой вопрос о том что считает DIR. "Намек для опытного пользователя" не понят.

Даю другой:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
c:\1>diskpart
 
Microsoft DiskPart version 5.2.3790.3959
Copyright (C) 1999-2001 Microsoft Corporation.
On computer: FDEFS1
 
DISKPART> list volume
 
  Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
  ----------  ---  -----------  -----  ----------  -------  ---------  --------
  Volume 0                      NTFS   Spanned      570 GB  Healthy
    C:\FDEAppDATA\
  Volume 1     C                NTFS   Simple        40 GB  Healthy    System
  Volume 2     D                       DVD-ROM         0 B  Healthy
 
DISKPART> exit
 
Leaving DiskPart...
 
c:\1>
0
Dragokas
Эксперт WindowsАвтор FAQ
16614 / 6999 / 848
Регистрация: 25.12.2011
Сообщений: 10,795
Записей в блоге: 16
12.10.2012, 11:35 #4
Приведите содержимое файла, созданного скриптом:

Bash
1
2
dir /a c:|findstr /i fdeappdata> c:\property.txt
dir /a c:\fdeappdata|findstr /i pacrat>> c:\property.txt
0
midc
2 / 2 / 0
Регистрация: 11.10.2012
Сообщений: 34
12.10.2012, 15:56  [ТС] #5
Показать _.bat
Bash
1
2
3
c:\1>type _.bat
dir /a c:|findstr /i fdeappdata> _property.txt
dir /a c:\fdeappdata|findstr /i pacrat>> _property.txt
иполнить его же
Bash
1
2
3
c:\1>_.bat
c:\1>dir /a c:  | findstr /i fdeappdata 1>_property.txt
c:\1>dir /a c:\fdeappdata  | findstr /i pacrat 1>>_property.txt
убедиться, что _property.txt "свежий"
Bash
1
2
3
4
c:\1>dir  _property.txt|findstr  _p&&date/t&&time/t
10/12/2012  07:20 AM                47 _property.txt
Fri 10/12/2012
07:20 AM
показать "содержимое файла, созданного скриптом" ("у-ти какая..."©)
Bash
1
2
3
c:\1>type _property.txt
10/11/2012  05:19 PM    <DIR>          PACRAT
c:\1>
0
Dragokas
Эксперт WindowsАвтор FAQ
16614 / 6999 / 848
Регистрация: 25.12.2011
Сообщений: 10,795
Записей в блоге: 16
12.10.2012, 17:55 #6
Что, я неправильно написал скрипт, опустив слеш?
Bash
1
dir /a c:\|findstr /i fdeappdata> c:\_property.txt
Тогда скажи мне, умный человек, почему первый раз поток не ушел.

Добавлено через 10 минут
Понятно. Интерпретатор такую комбинацию не воспринимает как канал, но и синтаксическую ошибку не написал.
0
midc
2 / 2 / 0
Регистрация: 11.10.2012
Сообщений: 34
12.10.2012, 18:12  [ТС] #7
Во-первых, прошу прощения за некоторую неоправданную (не верь глазам своим?) вольность в предыдущем моём сообщении.
Во-вторых, я очень мало что понял из Вашего последнего текста.
В-третьих, я модифицировал Ваш "скрипт", чтобы не "наследить" в корневой папке.
В-четвёртых, Вы случайно не в курсе дела, Что такое "число свободных байтов", возвращаемое командой DIR?

>>... умный человек...
Вы всё ещё меня недооцениваете?
0
Dragokas
Эксперт WindowsАвтор FAQ
16614 / 6999 / 848
Регистрация: 25.12.2011
Сообщений: 10,795
Записей в блоге: 16
12.10.2012, 18:55 #8
Цитата Сообщение от midc Посмотреть сообщение
прошу прощения за некоторую неоправданную (не верь глазам своим?) вольность в предыдущем моём сообщении.
Принимается. И от меня тоже примите.

Цитата Сообщение от midc Посмотреть сообщение
Вы всё ещё меня недооцениваете?
О, если бы я Вас недооценивал, я бы сразу написал Вам ответ.
Хочу, чтобы Вы сами догадались.

Итак, что там выдает последний мой скрипт...
0
midc
2 / 2 / 0
Регистрация: 11.10.2012
Сообщений: 34
12.10.2012, 19:21  [ТС] #9
01/24/2009 01:57 PM <JUNCTION> FDEAppDATA

>>я... бы сразу написал Вам ответ.
а или...
0
Dragokas
Эксперт WindowsАвтор FAQ
16614 / 6999 / 848
Регистрация: 25.12.2011
Сообщений: 10,795
Записей в блоге: 16
12.10.2012, 20:17 #10
А теперь посмотрите ту же статью от Raymond Chen только в оригинале, особенно комментарии:
http://blogs.msdn.com/b/oldnewthing/archive/2004/12/28/336219.aspx

Или вот эту: http://hex.pp.ua/reparse-points.php

Слово JUNCTION ничего не напоминает?
На 9-ю строку Вашего поста № 3 обратили внимание?
1
midc
2 / 2 / 0
Регистрация: 11.10.2012
Сообщений: 34
12.10.2012, 21:38  [ТС] #11
Насчёт Reparse Points очень познавательно, спасибо. Однако меня в данном вопросе больше интересуют не столько премудрости определения размера каталога (даже если бы таковой существовал), сколько, что означают 15GB и 170GB в моём исходном вопросе.
Раз уж Вы ссылаетесь на иноязычные источники, то позвольте мне привести своё мнение / догадку, высказанную на том же иноязыке пару дней назад:,
"Within mounted drives paradigm any valid path on basic drive, say, c: may point to a (recursively!) mounted folder, or a mounted folder mapped to an already mounted drive.
Now:
DIR <p> command types (besides other very useful things) the size of free space available on a physical hard drive, mapped to <p> or its nearest "parent" mounted folder (if any) within "mounted folders tree", which is not necessarily free space on the root c: drive..

I'd gladly accept this as an answer, should I know it's true.
I've just concocted it and I cannot find any documented confirmation of my "best guess".
As I mentioned above, "to type" here means "to put in STDOUT".
Был бы признателен за комментарии.

Да, и последнее (в этом сообщении): "Что такое "число свободных байтов" возвращаемое командой DIR?"
0
Dragokas
Эксперт WindowsАвтор FAQ
16614 / 6999 / 848
Регистрация: 25.12.2011
Сообщений: 10,795
Записей в блоге: 16
13.10.2012, 01:38 #12
Ну ок, расскажу.

Это только мое личное утверждение, которое подтверждается фактами.

Dir (последняя ее строка) - отображает объем свободного места (в байтах) на разделе, где физически находится каталог, заданный как аргумент этой команды (или рабочий каталог, если такой аргумент опущен).

Так как fdeappdata является точкой монтирования (Junction point, симуляцией, указателем... как угодно), о чем свидетельствует пост № 3 и пост № 9, то физически папка находится в данном конкретном случае на другом разделе, а соответственно и свободное место определяется именно на нем. Поэтому цифры отличаются.

На счет базы знаний kb 307889 - я ее не читал, но реализация описанного в Вашем сообщении алгоритма создания рекурсивной директории есть в соседней статье того же Raymond Chen http://blogs.msdn.com/b/oldnewthing/archive/2004/12/27/332704.aspx Ее перевод http://www.transl-gunsmoker.ru/2009/12/blog-post_27.html
Вероятно, там же в diskmgmt.msc Вы найдете "точку входа" и для Вашего Spanned Volume.

Spanned Volume знаете что такое?
2
midc
2 / 2 / 0
Регистрация: 11.10.2012
Сообщений: 34
13.10.2012, 02:34  [ТС] #13
>>Spanned Volume знаете что такое?
Как слышу, так и понимаю, тем более что я всегда ощущал дискомфорт из-за (подразумеваемого?) 1:1 "диск -- том" отношения:
C:\1>vol
Volume in drive C is OS
Volume Serial Number is 2090-02EB
C:\1>


Спасибо за подтверждение моей догадки. Я так вцепился в вопрос из-за того, что народ на работе запутался: "У нас что полный атас (5GB) или ещё протянем до реорганизации (170GB)?"

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

Всего хорошего, Dragokas.
0
Dragokas
Эксперт WindowsАвтор FAQ
16614 / 6999 / 848
Регистрация: 25.12.2011
Сообщений: 10,795
Записей в блоге: 16
13.10.2012, 04:28 #14
Цитата Сообщение от midc Посмотреть сообщение
1:1 "диск -- том"


Попробуйте запустить Dir указав параметром сетевой диск - еще больше удивитесь.
0
midc
2 / 2 / 0
Регистрация: 11.10.2012
Сообщений: 34
13.10.2012, 16:38  [ТС] #15
Возможно, следовало бы учесть разницу между "диск" и "partition" как в Вашей, так и в моей формулировке. Но для меня в данный момент это "не по Сеньке шапка".
0
13.10.2012, 16:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.10.2012, 16:38
Привет! Вот еще темы с ответами:

«"rar" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.» - CMD/BAT
Когда ставил эту винду(ХР), пришлось пару файлов пропустить, диск был немного покоцаный, может быть из-за этого? А может из-за того, что...

«"msg" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.» - CMD/BAT
В общем задача , сделать .BAT который при открытии выкинет тебе окно типа &quot;Error&quot; . В котором будет содержаться кнопка ОК и сам текст , при...

«"cp" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.» - CMD/BAT
Не могу использовать некоторые команды в консоли. Такие команды как dir или cls работают, а вот, допустим, cp не могу запустить. Консоль...

«"я╗┐del" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.» - CMD/BAT
Добрый день, всем. Есть бат файл который запускается с помощью VS2010 del svn.cpp del SVNrevision.cpp chcp 1251 rem...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru