PDA

Показать полную графическую версию : Копировать все полные пути


MaGoth
30-08-2019, 01:03
Привет народ, :)

По теме батников..
В Тотале есть такое меню "Инструменты" → "Копировать все колонки(полные пути))", данная функция немного неудобная, тк не умеет работать в глубину каталогов, а использует только выделенное. Да, есть в нем команда в меню "Файлы" → "Печать", но она тоже "не айс", ибо вывод осуществляется только в пдф-файл..


Вообщем хотелось бы чтобы кто-то помог создать нормальный батник(и) для этих целей. ТЗ для него/них примерно такое:.
1. Обрабатывать все файлы и каталоги(в том числе и вложенные), запоминать путь откуда был запущен.
2. Выводить инфу с отображением полного пути для файла и/или без него.


FileList_Size.bat
Собирает и выводит инфу о размере файла(ов) в байтах или с автоматической конвертацией размера файла в КБ/МБ/ГБ/ТБ, с указанием литер после разрядов, или в виндовом представлении в тхт-файл:
unins000.dat 1*629*044
unins000.dat 1 591 КБ
unins000.dat 1.55 МБ
unins000.dat 1,55 МБ (1*629*044 байт)
Вывод размера файла сделать настраиваемым, например: К → КБ, М → МБ, а для виндового W.


FileList_SizeDate.bat
Собирает и выводит инфу о дате - создания (C), изменения (M), открытия (A) файла, в тхт-файл:.
unins000.dat 1*629*044 28.08.2019 или 28/08/2019
unins000.dat 1 591 КБ 28.08.2019 или 28/08/2019
unins000.dat 1.55 МБ 28.08.2019 или 28/08/2019
unins000.dat 1,55 МБ (1*629*044 байт) 28.08.2019 или 28/08/2019

FileList_SizeDateTime.bat
Собирает и выводит инфу о времени создания файла в тхт-файл:.
unins000.dat 1*629*044 28.08.2019 17:57:18 или 28/08/2019 17:57
unins000.dat 1 591 КБ 28.08.2019 17:57:18 или 28/08/2019 17:57
unins000.dat 1.55 МБ 28.08.2019 17:57:18 или 28/08/2019 17:57
unins000.dat 1,55 МБ (1*629*044 байт) 28.08.2019 17:57:18 или 28/08/2019 17:57
Отображение секунд для времени, а также символ для делителя даты сделать настраиваемыми, на выбор: . или - или /.


FileList_SizeDateTimeHush.bat
Собирает и выводит инфу о хеше файла - CRC32 в тхт-файл:.
unins000.dat 1*629*044 28.08.2019 17:57:18 7018a6bb или (CRC32: 7018a6bb)
unins000.dat 1 591 КБ 28.08.2019 17:57:18 7018a6bb или (CRC32: 7018a6bb)
unins000.dat 1.55 МБ 28.08.2019 17:57:18 7018a6bb или (CRC32: 7018a6bb)
unins000.dat 1,55 МБ (1*629*044 байт) 28.08.2019 17:57:18 7018a6bb или (CRC32: 7018a6bb)
Вывод как обычно настраиваемый..


FileList_SizeDateTimeHushAttributes.bat
Собирает и выводит инфу о установленных атрибутах(r/a/s/h) файла в тхт-файл:.
unins000.dat 1*629*044 28.08.2019 17:57 7018a6bb -a--
unins000.dat 1 591 КБ 28.08.2019 17:57 7018a6bb -a--
unins000.dat 1.55 МБ 28.08.2019 17:57 7018a6bb -a--
unins000.dat 1,55 МБ (1*629*044 байт) 28.08.2019 17:57 7018a6bb -a--


Также, сделать аналогичное и для каталогов чтобы было примерно так:
unins1\ <Папка> 28.08.2019 17:57 ----
unins2\ <Папка> 29.08.2019 19:16 ----
unins3\ <Папка> 29.08.2019 19:16 ----
unins4\ <Папка> 28.08.2019 17:55 ----
unins000.dat 1*629*044 28/08/2019 17:57 7018a6bb -a--
unins000.dat 1 591 КБ 28/08/2019 17:57 7018a6bb -a--
unins000.dat 1.55 МБ 28/08/2019 17:57 7018a6bb -a--
unins000.dat 1,55 МБ (1*629*044 байт) 28/08/2019 17:57 7018a6bb -a--

Если выбран вариант без указания полного пути файла, то в начале тхт файла должна быть строка:

Листинг файлов каталога: C:\Program Files\MySoft
unins000.dat 1*629*044 28/08/2019 17:57 7018a6bb -a--
unins000.dat 1 591 КБ 28/08/2019 17:57 7018a6bb -a--
unins000.dat 1.55 МБ 28/08/2019 17:57 7018a6bb -a--
unins000.dat 1,55 МБ (1*629*044 байт) 28/08/2019 17:57 7018a6bb -a--

иначе:
Листинг файлов каталога: MySoft
C:\Program Files\MySoft\unins000.dat 1*629*044 28/08/2019 17:57 7018a6bb -a--
C:\Program Files\MySoft\unins000.dat 1 591 КБ 28/08/2019 17:57 7018a6bb -a--
C:\Program Files\MySoft\unins000.dat 1.55 МБ 28/08/2019 17:57 7018a6bb -a--
C:\Program Files\MySoft\unins000.dat 1,55 МБ (1*629*044 байт) 28/08/2019 17:57 7018a6bb -a--



Также, возможно имеет смысл выводимые значения в строке после названия файла разделять вертикальной чертой, сделав это настраиваемым, например:.

<FileName> <Size> <Date> <Time> <Hush> <Attributes>
<Path><FileName> <Size> <Date> <Time> <Hush> <Attributes>
или
<FileName> | <Size> | <Date> | <Time> | <Hush> | <Attributes>
<Path><FileName> | <Size> | <Date> | <Time> | <Hush> | <Attributes>


Прочее::
Есть еще такой батник, делает листинг файлов деревом с выводом в тхт файл:.
chcp 1251
echo %date% %time% >filelist.txt
tree /a /f > filelist.txt

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

alpap
30-08-2019, 21:10
Вот как-то так.. »
Не занимайтесь ерундой, когда вы приходите в супермаркет у вас есть возможность купить все (если есть, ну так виртуально, допустим вы миллионер), но все-таки вы покупаете только то что нужно сейчас (сегодня, на этой неделе). Надеюсь моя аллегория понятна. Так как команды dir (ключи) для bat более чем достаточно практически для любого случая.

MaGoth
30-08-2019, 22:47
Не занимайтесь ерундой, когда вы приходите в супермаркет у вас есть возможность купить все (если есть, ну так виртуально, допустим вы миллионер), но все-таки вы покупаете только то что нужно сейчас (сегодня, на этой неделе). Надеюсь моя аллегория понятна. Так как команды dir (ключи) для bat более чем достаточно практически для любого случая. »
Может покажите пример для конкретно моего случая ?!

DJ Mogarych
31-08-2019, 08:08
MaGoth, вот вам полезная статья, правда, на английском, на базе описанного там принципа можно сделать вывод любой нужной вам информации в любой комбинации:
Getting Directory Sizes in PowerShell (https://devblogs.microsoft.com/scripting/getting-directory-sizes-in-powershell/)

MaGoth
05-09-2019, 00:56
MaGoth, вот вам полезная статья, правда, на английском, на базе описанного там принципа можно сделать вывод любой нужной вам информации в любой комбинации:
Getting Directory Sizes in PowerShell »
Спасибо за подмогу, но не пригодилось.. все разрешилось обычным батником и приколхозиванием к нему консольного ехе-шника..




© OSzone.net 2001-2012