Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/34: Рейтинг темы: голосов - 34, средняя оценка - 4.76
9 / 9 / 0
Регистрация: 15.11.2017
Сообщений: 22
1

Как вывести список всех файлов (в том числе скрытых ) с размерами?

04.11.2018, 23:13. Показов 6816. Ответов 7

Author24 — интернет-сервис помощи студентам
Как вывести список всех файлов (в том числе скрытых ) с размерами (мегабайты, гигабайты и т.д.) в windows?
>dir/B/A выведет список имен, а как к ним добавить размеры файлов?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.11.2018, 23:13
Ответы с готовыми решениями:

Как вывести список всех элементов раздела в том числе вложенных?
Есть некий инфоблок. В нем есть несколько разделов. В каждом разделе есть еще подразделы. Мне...

Вывести на экран в виде таблицы атрибуты всех скрытых файлов
Имеется перечень файлов, каждый из которых задан своими атрибутами: имя, размер в байтах, скрытый,...

Как сделать окно поверх всех, в том числе и панели задач?
Есть окно, которому я задал стили, чтобы оно было поверх всех окон (TOPMOST). Так-то оно поверх...

Как вывести список всех файлов в папке с определенным расширением?
Здравствуйте! Есть textbox и кнопка. При нажатии на кнопку нужно, что бы программа "пошла" по...

7
6228 / 2670 / 1051
Регистрация: 06.06.2017
Сообщений: 9,128
05.11.2018, 14:48 2
Windows Batch file
1
forfiles /c "cmd /c echo @file @fsize"
1
9 / 9 / 0
Регистрация: 15.11.2017
Сообщений: 22
05.11.2018, 22:14  [ТС] 3
Спасибо, а как-то можно сделать так, чтобы выводило после размера единицу измерения("Мб", "Гб", ...)? Работало по типу опции -h, --human-readable в linux?
0
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
05.11.2018, 23:32 4
Цитата Сообщение от GreatGandalf Посмотреть сообщение
чтобы выводило после размера единицу измерения
можно написать самостоятельно, а приводить именно к Мб или Гб это уж сами:
Windows Batch file
1
2
3
@echo off
for /f "tokens=3*" %%a in ('dir /a-d/s/-c "C:\papka"^|findstr /rc:"^[^ ]"') do echo:Файл "%%b" [размер:%%a Байт]
pause
2
9 / 9 / 0
Регистрация: 15.11.2017
Сообщений: 22
05.11.2018, 23:38  [ТС] 5
Спасибо за ответ)
0
6228 / 2670 / 1051
Регистрация: 06.06.2017
Сообщений: 9,128
06.11.2018, 00:58 6
С тем же успехом можно вставить ... @fsize byte"
1
Эксперт Python
5418 / 3842 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
06.11.2018, 02:57 7
Цитата Сообщение от GreatGandalf Посмотреть сообщение
можно сделать так, чтобы... работало по типу опции -h, --human-readable в linux?
Если набраться смелости и набрать в консоли cmd слово powershell, то внезапно можно будет делать вот так:
PowerShell
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
PS B:\iso> > dir | where {!$_.PSIsContainer} | foreach{ "{0,-50} {1:#,#0.000} Mb" -f  $_.name, $($_.length/1MB)}
1.txt                                              0,000 Mb
Text_Progs.rar                                     1,408 Mb
VisualStudio2012_WDX_RUS.iso                       624,973 Mb
WinXP_Pro_x64_SP2_Flero.Ru.iso                     1 259,424 Mb
XTremeCD15.08.11.iso                               700,313 Mb
 
PS B:\iso> > dir | where {!$_.PSIsContainer} | Select Name, @{N="Size";E={"{0:#,#0.000} Kb" -f $($_.Length/1kb)}
 
Name                           Size
----                           ----
1.txt                          0,006 Kb
Text_Progs.rar                 1 442,181 Kb
VisualStudio2012_WDX_RUS.iso   639 972,000 Kb
WinXP_Pro_x64_SP2_Flero.Ru.iso 1 289 650,000 Kb
XTremeCD15.08.11.iso           717 120,000 Kb
 
PS B:\iso> > dir | ? {!$_.PSIsContainer} | Select Name, @{N="Size";E={
>>     $size = $_.Length
>>     if     ($size -gt 1TB) {"{0:0.00} Tb" -f $($size / 1Tb)}
>>     elseif ($size -gt 1GB) {"{0:0.00} Gb" -f $($size / 1Gb)}
>>     elseif ($size -gt 1MB) {"{0:0.00} Mb" -f $($size / 1Mb)}
>>     elseif ($size -gt 1KB) {"{0:0.00} Kb" -f $($size / 1Kb)}
>>     elseIf ($size -ge 0)   {"{0:0.00} B"  -f $size}
>>     }
>> }
>>
 
Name                           Size
----                           ----
1.txt                          6,00 B
Text_Progs.rar                 1,41 Mb
VisualStudio2012_WDX_RUS.iso   624,97 Mb
WinXP_Pro_x64_SP2_Flero.Ru.iso 1,23 Gb
XTremeCD15.08.11.iso           700,31 Mb
P.S. Проверка !$_.PSIsContainer (отсечение директорий) в PoSH версий от 3.0 заменяется опцией -file командлета get-childitem ( алиасы dir, ls, gci).
3
5990 / 1999 / 323
Регистрация: 10.12.2013
Сообщений: 6,890
06.11.2018, 05:32 8
Если натурально по-человечески, то конечно же powershell.
А в последнем есть cmdlet Update-FormatData, который налету в текущей сессии перегружает данные ответственные за форматирование вывода. А заведуют форматированием вывода конфигурационные xml-файлы и в частности
FileSystem.Format.ps1xml
Кликните здесь для просмотра всего текста

XML
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
<?xml version="1.0" encoding="utf-8" ?> 
<!-- *******************************************************************
These sample files contain formatting information used by the Windows 
PowerShell engine. Do not edit or change the contents of this file 
directly. Please see the Windows PowerShell documentation or type 
Get-Help Update-FormatData for more information.
 
Copyright (c) Microsoft Corporation.  All rights reserved.
 
THIS SAMPLE CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY 
OF ANY KIND,WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO 
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
PURPOSE. IF THIS CODE AND INFORMATION IS MODIFIED, THE ENTIRE RISK OF USE
OR RESULTS IN CONNECTION WITH THE USE OF THIS CODE AND INFORMATION 
REMAINS WITH THE USER.
******************************************************************** -->
<Configuration>
    <SelectionSets>
        <SelectionSet>
            <Name>FileSystemTypes</Name>
            <Types>
                <TypeName>System.IO.DirectoryInfo</TypeName>
                <TypeName>System.IO.FileInfo</TypeName>
            </Types>
        </SelectionSet>
    </SelectionSets>
 
    <!-- ################ GLOBAL CONTROL DEFINITIONS ################ -->
    <Controls>
        <Control>
            <Name>FileSystemTypes-GroupingFormat</Name>
                    <CustomControl>
                        <CustomEntries>
                            <CustomEntry>
                                <CustomItem>
                                    <Frame>
                                        <LeftIndent>4</LeftIndent>
                                        <CustomItem>
                                            <Text AssemblyName="System.Management.Automation" BaseName="FileSystemProviderStrings" ResourceId="DirectoryDisplayGrouping"/>
                                            <ExpressionBinding>
                                              <ScriptBlock>
                                                  $_.PSParentPath.Replace("Microsoft.PowerShell.Core\FileSystem::", "")                                                  
                                              </ScriptBlock>
                                            </ExpressionBinding>
                                            <NewLine/>
                                        </CustomItem> 
                                    </Frame>
                                </CustomItem>
                            </CustomEntry>
                        </CustomEntries>
            </CustomControl>
        </Control>
    </Controls>
    
    <!-- ################ VIEW DEFINITIONS ################ -->
 
    <ViewDefinitions>
       <View>
            <Name>children</Name>
            <ViewSelectedBy>
                <SelectionSetName>FileSystemTypes</SelectionSetName>
            </ViewSelectedBy>
            <GroupBy>
                <PropertyName>PSParentPath</PropertyName> 
                <CustomControlName>FileSystemTypes-GroupingFormat</CustomControlName>  
            </GroupBy>
            <TableControl>
                <TableHeaders>
                   <TableColumnHeader>
                      <Label>Mode</Label>
                      <Width>7</Width>
                      <Alignment>left</Alignment>
                   </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>LastWriteTime</Label>
                        <Width>25</Width>
                        <Alignment>right</Alignment>
                    </TableColumnHeader>
                    <TableColumnHeader>
                        <Label>Length</Label>
                        <Width>14</Width>
                        <Alignment>right</Alignment>
                    </TableColumnHeader>
                    <TableColumnHeader/>
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <Wrap/>
                        <TableColumnItems>
                            <TableColumnItem>
                                <PropertyName>Mode</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>
                                    [String]::Format("{0,10}  {1,8}", $_.LastWriteTime.ToString("d"), $_.LastWriteTime.ToString("t"))
                                </ScriptBlock>
                            </TableColumnItem>
                            <TableColumnItem>
                            <PropertyName>Length</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Name</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                </TableRowEntries>
            </TableControl>
        </View>
        <View>
            <Name>children</Name>
            <ViewSelectedBy>
                <SelectionSetName>FileSystemTypes</SelectionSetName>
            </ViewSelectedBy>
            <GroupBy>
                <PropertyName>PSParentPath</PropertyName> 
                <CustomControlName>FileSystemTypes-GroupingFormat</CustomControlName>  
            </GroupBy>
            <ListControl>
                <ListEntries>
                    <ListEntry>
                        <EntrySelectedBy>
                            <TypeName>System.IO.FileInfo</TypeName>
                        </EntrySelectedBy>
                        <ListItems>
                            <ListItem>
                                <PropertyName>Name</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Length</PropertyName>
                            </ListItem>
                           <ListItem>
                                <PropertyName>CreationTime</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>LastWriteTime</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>LastAccessTime</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Mode</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>LinkType</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>Target</PropertyName>
                            </ListItem>                        
                            <ListItem>
                                <PropertyName>VersionInfo</PropertyName>
                            </ListItem>
                        </ListItems>
                    </ListEntry>
                    <ListEntry>
                        <ListItems>
                            <ListItem>
                                <PropertyName>Name</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>CreationTime</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>LastWriteTime</PropertyName>
                            </ListItem>
                            <ListItem>
                                <PropertyName>LastAccessTime</PropertyName>
                            </ListItem>
                          <ListItem>
                            <PropertyName>Mode</PropertyName>
                          </ListItem>
                          <ListItem>
                            <PropertyName>LinkType</PropertyName>
                          </ListItem>
                          <ListItem>
                            <PropertyName>Target</PropertyName>
                          </ListItem>
                        </ListItems>
                    </ListEntry>
                </ListEntries>
            </ListControl>
        </View>
        <View>
            <Name>children</Name>
            <ViewSelectedBy>
                <SelectionSetName>FileSystemTypes</SelectionSetName>
            </ViewSelectedBy>
            <GroupBy>
                <PropertyName>PSParentPath</PropertyName> 
                <CustomControlName>FileSystemTypes-GroupingFormat</CustomControlName>  
            </GroupBy>
            <WideControl>
                <WideEntries>
                    <WideEntry>
                        <WideItem>
                            <PropertyName>Name</PropertyName>
                        </WideItem>
                    </WideEntry>
                    <WideEntry>
                        <EntrySelectedBy>
                            <TypeName>System.IO.DirectoryInfo</TypeName>
                        </EntrySelectedBy>
                        <WideItem>
                            <PropertyName>Name</PropertyName>
                            <FormatString>[{0}]</FormatString>
                        </WideItem>
                    </WideEntry>
                </WideEntries>
            </WideControl>
        </View>
        <View>
            <Name>FileSecurityTable</Name>
            <ViewSelectedBy>
                <TypeName>System.Security.AccessControl.FileSystemSecurity</TypeName>
            </ViewSelectedBy>
            <GroupBy>
                <PropertyName>PSParentPath</PropertyName> 
                <CustomControlName>FileSystemTypes-GroupingFormat</CustomControlName>  
            </GroupBy>
            <TableControl>
                <TableHeaders>
                   <TableColumnHeader>
                      <Label>Path</Label>
                   </TableColumnHeader>
                   <TableColumnHeader />
                   <TableColumnHeader>
                      <Label>Access</Label>
                   </TableColumnHeader>
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <ScriptBlock>
                                    split-path $_.Path -leaf
                                </ScriptBlock>
                            </TableColumnItem>
                            <TableColumnItem>
                            <PropertyName>Owner</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <ScriptBlock>
                                    $_.AccessToString
                                </ScriptBlock>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                </TableRowEntries>
            </TableControl>
        </View>
       <View>
            <Name>FileSystemStream</Name>
            <ViewSelectedBy>
                <TypeName>Microsoft.PowerShell.Commands.AlternateStreamData</TypeName>
            </ViewSelectedBy>
            <GroupBy>
                <PropertyName>Filename</PropertyName> 
            </GroupBy>
            <TableControl>
                <TableHeaders>
                   <TableColumnHeader>
                      <Width>20</Width>
                      <Alignment>left</Alignment>
                   </TableColumnHeader>
                    <TableColumnHeader>
                        <Width>10</Width>
                        <Alignment>right</Alignment>
                    </TableColumnHeader>
                </TableHeaders>
                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <PropertyName>Stream</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Length</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                </TableRowEntries>
            </TableControl>
        </View>          
    </ViewDefinitions>
</Configuration>


Копируем этот файл во временную директорию и заменяем в нём свойство Length на свой ScriptBlock вот таким образом:
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
$file = '{0}myTypes.ps1xml' -f ([System.IO.Path]::GetTempPath()) 
$data = Get-Content -Path $PSHOME/FileSystem.format.ps1xml
$data -replace '<PropertyName>Length</PropertyName>', @'
<ScriptBlock>
if($$_ -is [System.IO.FileInfo]) {
    $this=$$_.Length; $sizes='Bytes,KB,MB,GB,TB,PB,EB,ZB' -split ','
    for($i=0; ($this -ge 1kb) -and ($i -lt $sizes.Count); $i++) {$this/=1kb}
    $N=2; if($i -eq 0) {$N=0}
    "{0:N$($N)} {1}" -f $this, $sizes[$i]
} else { $null }
</ScriptBlock>
'@ | Set-Content -Path $file
и перегружаем
PowerShell
1
Update-FormatData -PrependPath $file
Теперь всё готово и можно выполнять:
PowerShell
1
ls
и получать
Код
    Directory: C:TestDirectory

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-ar---       30/11/2016     09:40      277 Bytes file.txt
-a----       20/05/2017     21:02        1.26 KB otherfile.txt
-ar---       03/01/2017     15:58        3.04 KB differentfile.exe
-a----       21/03/2017     19:46        2.83 MB medium.pkg
-a----       21/03/2017     19:46       11.76 MB large.msi
d-----       20/05/2017     20:10                Logs
Если хотите иметь эту красотень постоянно просто сохраните в любом месте этот файл myTypes.ps1xml
и добавьте строку загрузки Update-FormatData -PrependPath $file в свой profile
4
06.11.2018, 05:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.11.2018, 05:32
Помогаю со студенческими работами здесь

Как вывести список всех файлов определенного расширения из директории?
Здравствуйте! По адресу &quot;C:\images\&quot; есть разные картинки с разними форматами. Задача программы в...

как сделать так чтоб было видно всех klient в том числе у которых нет zakaz
Есть вот такой запрос. SELECT klient.tel, klient.familiya, klient.imy, ...

Список не скрытых файлов
Directory.GetFiles возвращает список, в котором находятся и скрытые файлы.

Хранение данных (в том числе файлов) на стороне клиента
Подскажите, можно ли как-нибудь реализовать, допустим есть сайт, на нем много картинок (каждый раз...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru