Запис на имената на директории в някакъв текстов файл.
Здравейте,
Идеята е следната, имам дискове (CD и DVD) с мп3-ки. Искам да си направя нещо като каталог или по-точно списък на това което имам (примерно екселски файл), за да мога по-лесно да намирам нещо като го търся или проверявам дали въобще го имам. Понеже дисковете са доста, вариянта "на ръка" да преписвам всичко не ме устройва. Държа да отбележа, че искам само имената на диртекториите и поддиректориите, без имената на файловете! Вариянта с имената и на файловете го има като plug-in в любимия ми Total Commander, обаче представете си какво се получава като се смъкне едно DVD с мп3-ки.....а като станат десетки......иди ги подреждай после.... :)
Затова търся вариянт смъкване информацията за съдържанието на даден диск, но без имената на файловете.
Няма проблем и под DOS да е, стига да се поддържат дълги имена.....
Прегледах предни теми по подобни въпроси, но посочените решения и програми не решават моя проблем (или поне аз не съм забелязал )
Благодаря предварително на решилите да помогнат! :god :)
Re: Запис на имената на директории в някакъв текстов файл.
dir /a:d /s > file.txt ,така става
Re: Запис на имената на директории в някакъв текстов файл.
След твоята команда добавяш
> file.txt
Само че едва ли точно това ще е, което иска @Pat
Re: Запис на имената на директории в някакъв текстов файл.
@Pat
Дай някакъв пример как искаш да ти изглежда файла, че не стана ясно.
Re: Запис на имената на директории в някакъв текстов файл.
Виж дали dir /a:d /s /b > spisak.txt ще ти свърши работа.
Ако ти трябва нещо с графичен интерфейс, свали си Directory Lister - 98к, безплатна.
Re: Запис на имената на директории в някакъв текстов файл.
Благодаря за бързите отговори :)!
dir /a:d /s /b > spisak.txt се доближава до това което искам, но не става, защото първо изброява главните директории, след тях почва поддиректориите от първо ниво, след като изброи и тях тогава почва от второ ниво и т.н. При което се губи връзката на директория с поддиректория - особенно когато са много.
Освен това на всеки ред слага буквата на устройството и наклонена черта (което си е нормално за ДОС команта). Ето пример:
Цитат:
F:\Burning Point
F:\Charon
F:\Lost In Tears
F:\Power Symphony -1999 - Evillot
F:\Sonata Arctica - 2004 - Don't Say A Word (Single)
F:\Thunderstone
F:\Burning Point\2001 - Salvation By Fire
F:\Burning Point\2003 - Feeding The Flames
F:\Charon\1998 - Sorrowburn
F:\Charon\2000 - Tearstained
F:\Charon\2002 - Downhearted
F:\Charon\2003 - The Dying Daylights
F:\Charon\2002 - Downhearted\oblojka
F:\Lost In Tears\1998 - Forever Alone
F:\Lost In Tears\2002 - Dialogue With Mirror And God
F:\Thunderstone\2002 - Thunderstone
F:\Thunderstone\2004 - Thunderstone - The Burning
А на мен ми трябва да се записва по следния начин:
Това е направено с плъгина на Тотал командер и ръчно съм премахнал списъка с имената на файловете. Информацията за час и дата по принцип не ме интересува , така че не държа да я има, но не ми и пречи.
Цитат:
Burning Point\ 0 2004.9.12 16:12.34
Burning Point\2001 - Salvation By Fire\ 0 2004.9.12 16:12.34
Burning Point\2003 - Feeding The Flames\ 0 2004.9.12 16:12.34
Charon\ 0 2004.9.12 16:12.34
Charon\1998 - Sorrowburn\ 0 2004.9.12 16:12.34
Charon\2000 - Tearstained\ 0 2004.9.12 16:12.34
Charon\2002 - Downhearted\ 0 2004.9.12 16:12.34
Charon\2003 - The Dying Daylights\ 0 2004.9.12 16:12.34
Lost In Tears\ 0 2004.9.12 16:12.34
Lost In Tears\1998 - Forever Alone\ 0 2004.9.12 16:12.34
Lost In Tears\2002 - Dialogue With Mirror And God\ 0 2004.9.12 16:12.34
Power Symphony -1999 - Evillot\ 0 2004.9.12 16:12.34
Sonata Arctica - 2004 - Don't Say A Word (Single)\ 0 2004.9.12 16:12.34
Thunderstone\ 0 2004.9.12 16:12.34
Thunderstone\2002 - Thunderstone\ 0 2004.9.12 16:12.34
Thunderstone\2004 - Thunderstone - The Burning\ 0 2004.9.12 16:12.34
Програмката цитирана от @panevdd наистина е много функционална, с богат набор от опции и донякъде ще ми свърши работа. Единственото което не ми хареса е, че и тя в началото на всеки ред слага наклонена черта (буквата на устройството успях да я махна - има опция за нея).
Та сега следващ въпрос :) , как автоматично да премахна тази черта от всички редове, без да си играя ред по ред? Генерирания файл е текстов.
Цитат:
NAME
\
\Burning Point\
\Burning Point\2001 - Salvation By Fire\
\Burning Point\2003 - Feeding The Flames\
\Charon\
\Charon\1998 - Sorrowburn\
\Charon\2000 - Tearstained\
\Charon\2002 - Downhearted\
\Charon\2002 - Downhearted\oblojka\
\Charon\2003 - The Dying Daylights\
\Lost In Tears\
\Lost In Tears\1998 - Forever Alone\
\Lost In Tears\2002 - Dialogue With Mirror And God\
\Power Symphony -1999 - Evillot\
\Sonata Arctica - 2004 - Don't Say A Word (Single)\
\Thunderstone\
\Thunderstone\2002 - Thunderstone\
\Thunderstone\2004 - Thunderstone - The Burning\
Текста смятам да го вкарвам в EXEL, така че ако там има някакъв бърз и лесен начин за премахване на тия черти ще е най-добре. В тази посока ме наведе поста на @Avis от темата на @IvO™ "Търся програма за триене на празни редове в DOS-файл "
Сега ще потърся този текстов редактор "q.com" който се споменав пам в същата тема. НО не бих се отказал и от вариянт за EXEL.:)
Re: Запис на имената на директории в някакъв текстов файл.
Цитат:
Та сега следващ въпрос :) , как автоматично да премахна тази черта от всички редове, без да си играя ред по ред?
Отвори файла с Notepad, Edit -> Replace, в горното поле поставяш \, в долното поставяш табулация (предварително си я въведи някъде в текстовия файл, за да можеш да я копираш, когато ти потрябва в диалога "Replace"), бутона Replace All и готово. Получаваш файл, който е много удобен за отваряне в Excel. В Excel става по същия начин.
Код:
NAME
Burning Point
Burning Point 2001 - Salvation By Fire
Burning Point 2003 - Feeding The Flames
Charon
Charon 1998 - Sorrowburn
Charon 2000 - Tearstained
Charon 2002 - Downhearted
Charon 2002 - Downhearted oblojka
Charon 2003 - The Dying Daylights
Lost In Tears
Lost In Tears 1998 - Forever Alone
Lost In Tears 2002 - Dialogue With Mirror And God
Power Symphony -1999 - Evillot
Sonata Arctica - 2004 - Don't Say A Word (Single)
Thunderstone
Thunderstone 2002 - Thunderstone
Thunderstone 2004 - Thunderstone - The Burning
Re: Запис на имената на директории в някакъв текстов файл.
Да.... :Drinks: ....елментарно Уотсън! :))
Благодарности на всички още веднъж ! :god :)
Re: Запис на имената на директории в някакъв текстов файл.
Щом ще вкарваш текста Код:
NAME
\
\Burning Point\
\Burning Point\2001 - Salvation By Fire\
\Burning Point\2003 - Feeding The Flames\
\Charon\
\Charon\1998 - Sorrowburn\
\Charon\2000 - Tearstained\
\Charon\2002 - Downhearted\
\Charon\2002 - Downhearted\oblojka\
\Charon\2003 - The Dying Daylights\
\Lost In Tears\
\Lost In Tears\1998 - Forever Alone\
\Lost In Tears\2002 - Dialogue With Mirror And God\
\Power Symphony -1999 - Evillot\
\Sonata Arctica - 2004 - Don't Say A Word (Single)\
\Thunderstone\
\Thunderstone\2002 - Thunderstone\
\Thunderstone\2004 - Thunderstone - The Burning\
в Excel, просто го запиши като чист текстов файл и го отвори с Excel (като Text file, естествено!). Даваш му да е Delimited, за разделител даваш знака "\" и си готов! Е, изтриваш първата колона, защото тя се получава празна, но това вече са подробности! :) :Drinks:
Re: Запис на имената на директории в някакъв текстов файл.
@Pat
Някак си бях останал с впечатлението, че искаш да имаш пътя само в една колона в Excel, т.е. че трябва да махнеш само първата наклонена черта от примера, който си дал.
По твоя пример:
Код:
NAME
Burning Point\
Burning Point\2001 - Salvation By Fire\
Burning Point\2003 - Feeding The Flames\
Charon\
Charon\1998 - Sorrowburn\
Charon\2000 - Tearstained\
Charon\2002 - Downhearted\
Charon\2002 - Downhearted\oblojka\
Charon\2003 - The Dying Daylights\
За целта трябва да оставиш целия път, с нещо като:
Код:
echo NAME > spisak.txt
dir /a:d /s /b F:\ >> spisak.txt
След това да влезеш в Notepad и да замениш F:\ с празен низ.
Ако искаш съвсем да си го автоматизираш, може да опиташ с пакетен файл. Създай някъде на стартируемо място (т.е. включено в PATH променливата) файл с примерно име 'List.bat' и следното съдържание:
Код:
@echo off
if %2.==. (
echo Usage: %0 'path' 'file'
goto :EOF
)
if not exist %2 echo NAME >%2
setlocal
for /r %1 %%i in (.) do call :Sub %2 "%%~fi" %%~ni
endlocal
goto :EOF
:Sub
set MyTemp=%2
if not %3.==. echo %MyTemp:~4,-1% >> %1
Стартира се например с команди от типа:
Код:
list F: spisak.txt
List F:\ C:\Work\spisak.txt
LIST f:\Music ..\spisak.txt
List "F:\My Music\" "C:\My Documents\Spisak.txt"
т.е. дава известна свобода на синтаксиса, но при всяко положение първият параметър е пътя до папката, която искаш да опишеш, а втория - файлът, където ще записва/дописва.
Разбира се, ще трябва да си го тестваш. При мен се пообърка с много дългите пътища (има ограничение за дължината на променливите), но за по-прости ситуации очаквам да си работи. Със сигурност няма да тръгне на Windows преди 2000, за твоя компютър само ти можеш да кажеш става ли.
Избягвах дългите описания, така че ако имаш въпроси, задай си ги. Също и ако не съм разбрал изискванията ти, всъщност затова помолих за примерни данни.
Успех!
Re: Запис на имената на директории в някакъв текстов файл.
и все пак мисля че е по добре да ползваш нещо като това програмата прави перфектни списъци
Re: Запис на имената на директории в някакъв текстов файл.
@Avis, евала за изчерпателния отговор и старането което си положил! Сега като гледам наистина не съм пояснил точно какво искам, но това се дължи единствено на недостатъчните ми познания в сферата на програмирането...Наистина си мислех само за наклонената черта в началото, на другите просто не им обръщах внимание - нито ми пречеха, нито държах на тях, затова говорех само за тези в началото на реда.
Вариянта с "Replace" в Exel ме устройва, защото въвеждах всичко както си е и след това наведнъж се премахват всички черти. Но и това вече е история, с последната програма посочена от @mikk списъците излизат такива каквито исках. Правя само "copy->paste". :ole :Drinks:
Re: Запис на имената на директории в някакъв текстов файл.
Защо не ползваш Broken Cross CD Manager?