View previous topic :: View next topic |
Author |
Message |
KatMuse
Joined: 26 Jul 2014 Posts: 82
|
(Separately) Posted: Fri Dec 19, 2014 21:56 Post subject: Создание информационных файлов |
|
|
Доброго времени суток, уважаемые форумчане!
Подскажите, пожалуйста, как реализовать следующую задумку:
есть файлы, подготовленные для записи на диск.
Диск 10 <-- папка
File1.iso <-- файл
File2.rar <-- файл
Как сделать такую папку:
Моя папка
File1.iso.txt --содержание--> см. Диск 10
File2.rar.txt --содержание--> см. Диск 10
К сожалению, мне не хватает навыков написать такой скрипт, а беспорядок на диске уже надоел
Большая просьба помочь. Спасибо!
! | Avada: | Прежний заголовок темы "Заместитель для файла" заменён на более осмысленный. | |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
|
Back to top |
|
|
KatMuse
Joined: 26 Jul 2014 Posts: 82
|
(Separately) Posted: Sat Dec 20, 2014 00:52 Post subject: |
|
|
MVV
спасибо за ответ!
Да, всё так и есть - это такой "заместитель для файла", который указывает где хранится файл, то есть на каком диске.
Если бы можно было добавить ещё, например, размер файла, расширение и время создания, то есть сделать заместитель более информативным, то было бы вообще идеально! Но, вообще говоря, хотелось бы иметь, хотя бы ссылку на место хранения. |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Sat Dec 20, 2014 01:21 Post subject: |
|
|
Можно таким батником:
Code: | @echo off
md .descr
for %%F in (*) do call :do_file "%%F"
goto :EOF
:do_file
echo %~1
for /f "delims=" %%D in ("%~dp1\.") do set foldername=%%~nxD
echo [%foldername%]>".descr\%~1.txt"
echo %~nxtza1>>".descr\%~1.txt" |
Сохранить как .bat, перетащить на панель инструментов тотала и очистить поле пути запуска.
Для каждого файла из текущей папки создаст в подпапке .descr файл с описанием в виде:
Quote: | [$mltwcx]
--a--c--- 21.11.2014 11:25 55500 _z_src_09.cab
|
(имя папки в скобках, затем информация о файле) _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
KatMuse
Joined: 26 Jul 2014 Posts: 82
|
(Separately) Posted: Sat Dec 20, 2014 01:29 Post subject: |
|
|
Супер! Спасибо!
MVV
Скажите, а можно, чтобы были ещё и подпапки задействованы? То есть, для всех файлов во вложенных папках?
Ещё раз большое спасибо! Кажется, наконец, будет порядок |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Sat Dec 20, 2014 01:30 Post subject: |
|
|
С подпапками немного сложнее будет. Надо было сразу сказать об этом.
Code: | @echo off
for /f "delims=" %%D in ("%CD%") do set diskname=%%~nxD
call :do_dir "%CD%\" "%CD%\.descr\" ""
goto :EOF
:do_dir
echo [%diskname%\%~3]
md "%~2%~3"
for /D %%D in ("%~1%~3\*") do if not "%%~nxD" == ".descr" call :do_dir "%~1" "%~2" "%~3%%~nxD\"
for %%F in ("%~1%~3\*") do call :do_file "%%F" "%~2" "%~3"
goto :EOF
:do_file
set descrfile=%~2%~3%~nx1.txt
echo %~1 ^> %descrfile%
echo [%diskname%\%~3]>"%descrfile%"
echo %~nxtza1>>"%descrfile%"
goto :EOF
|
Я лично у себя использую архиваторный плагин DiskDirExtended и содержимое каждого диска упаковываю в файл-список. Потом в одну папку складываю файлы-списки от всех дисков, и можно в них входить как в каталоги и видеть файлы, их размеры, атрибуты. И поиском по этим архивам легко найти нужный файл. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
KatMuse
Joined: 26 Jul 2014 Posts: 82
|
(Separately) Posted: Sat Dec 20, 2014 02:38 Post subject: |
|
|
Спасибо за ответ!
Quote: | С подпапками немного сложнее будет. Надо было сразу сказать об этом. |
Извините...
Невероятно... мечта сбылась! Спасибо!
Скажите, а можно у Вас уточнить про совсем идеальный вариант?
То есть, чтобы размер был в мегабайтах и с приставкой Мб, а параметры файла располагались по строкам:
Quote: | Имя файла: My documet.docx
Размер: 0.5 Мб
Дата создания: 01.01.2014
Атрибуты: --a------ |
Извините, Вы мне очень помогли, просто я сначала постеснялся высказывать идеальный вариант...
Ещё раз Вам большое спасибо!!!!
Спасибо за плагин! Он супер! |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Sat Dec 20, 2014 22:44 Post subject: |
|
|
Это легко. Но дата указывается модификации, а не создания. По большому счёту, именно она имеет ценность. Последнюю часть файла надо модифицировать:
Code: | :do_file
set descrfile=%~2%~3%~nx1.txt
echo %~1 ^> %descrfile%
echo Location: %diskname%\%~3>"%descrfile%"
echo Name: %~nx1>>"%descrfile%"
set /a filesize=%~z1 / 1048576
echo Size: %filesize% MB (%~z1 B)>>"%descrfile%"
echo Modified: %~t1>>"%descrfile%"
echo Attributes: %~a1>>"%descrfile%"
goto :EOF |
Надписи можно исправить. Единственный момент: всё сохраняется в кодировке 866, поэтому и русский текст тоже надо в ней писать. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
KatMuse
Joined: 26 Jul 2014 Posts: 82
|
(Separately) Posted: Sat Dec 20, 2014 23:31 Post subject: |
|
|
MVV
спасибо Вам огромное!!!!
Это просто предел мечтаний!!!
Если можно, то могли бы Вы прокомментировать, что здесь что, очень хочется разобраться, но не хватает навыков... do_file это ведь процедура правильно? |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Sun Dec 21, 2014 01:39 Post subject: |
|
|
Вообще, :do_file - это просто метка, но да, переход на неё выполняется в виде вызова процедуры. Ей передаются 3 параметра: путь к исходному файлу, путь к папке .descr и относительный путь к папке файла относительно корня диска. %~2 - путь к папке .descr без кавычек (модификатор ~), %~nx1 - имя и расширение без кавычек (модификатор ~nx) исходного файла, %~a1 - атрибуты (все возможные модификаторы можно посмотреть в консоли по команде call /?). Знак > означает вывод в новый файл, знак >> - дозапись в файл. При этом ^> просто печатает символ >. Путь к файлу предварительно помещается в переменную окружения и строится из пути к папке .descr, относительного пути к текущей папке, имени и расширения текущего файла и добавочного расширения .txt.
Для обработки каталога определена метка :do_dir, принимает три параметра: путь к корню диска, путь к папке .descr и относительный путь к текущей папке относительно базовых. Процедура сначала вызывает себя для вложенных папок (при этом к относительному пути добавляется имя очередной папки, которое извлекается модификатором ~nx, как и в :do_file), затем для каждого файла в папке вызывает :do_file. В команде for можно выбрать любую букву для подстановки пути к очередному элементу, я взял %F для файлов и %D для папок. Символ процента в команде for надо удваивать, если она пишется в батнике, а не напрямую в консоли.
Ну а в начале файла просто вызывается :do_dir для исходной папки с пустым относительным путём.Вообще, :do_file - это просто метка, но да, переход на неё выполняется в виде вызова процедуры. Ей передаются 3 параметра: путь к исходному файлу, путь к папке .descr и относительный путь к папке файла относительно папки диска. %~2 - путь к папке .descr без кавычек (модификатор ~), %~nx1 - имя и расширение без кавычек (модификатор ~nx) исходного файла, %~a1 - атрибуты (все возможные модификаторы можно посмотреть в консоли по команде call /?). Знак [i] _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
KatMuse
Joined: 26 Jul 2014 Posts: 82
|
(Separately) Posted: Tue Dec 23, 2014 13:31 Post subject: |
|
|
MVV
спасибо за объяснение!
Благодаря Вам искать файлы на компьютере стало на много легче!
Спасибо, что подробно объяснили!
Была бы возможность, наставил бы Вам море плюсиков |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
|
Back to top |
|
|
KatMuse
Joined: 26 Jul 2014 Posts: 82
|
(Separately) Posted: Wed Dec 24, 2014 20:30 Post subject: |
|
|
MVV
Уже присмотрелся - это восхитительно!!!!!!!
Спасибо!
У меня теперь осталась последняя идея фикс
Создать текстовый файл на основании двух переданных параметров - путь и имя файла.
То есть mybat.bat "C:\temp" "test.jpg" и получаем файл с именем "! test.txt" в каталоге temp.
Описания для файлов, которые лежат на диске (я их не планирую никуда записывать, просто они хранятся на диске). По ctrl-z не удобно, так как при переименовании (опечатку допустил или по-сути не точно) всё стирается. Не ли у Вас плагина для этого
Написал код, но он не работает...
SetLocal EnableDelayedExpansion
Set folder=%2
Echo(>"%1.txt"
Start ""%2"\"%1.txt""
Подскажите, пожалуйста, что нужно исправить? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Dec 24, 2014 21:01 Post subject: |
|
|
KatMuse
У нас тут не принято в одной теме запрашивать функционал, отходящий от сути сабжа, который, кстати, легко находится самостоятельно. Только один из примеров. Читаем низ памятки. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
KatMuse
Joined: 26 Jul 2014 Posts: 82
|
(Separately) Posted: Wed Dec 24, 2014 21:34 Post subject: |
|
|
Flasher,
Прошу прощения, но я не понял Ваш комментарий...
Речь идёт о всё том же заместителе, но только для одного файла.
Указанную ссылку я находил, но там предлагается использовать notepad "%O.txt" , а это, к сожалению, не совсем то.
Неужели новую тему создавать? |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|