![]() |
нужно переименовать большую коллекцию MP3 файлов
Столкнулся с проблемой понимания скрипта, Ситуация выглядит следующим образом, нужно переименовать большую коллекцию MP3 файлов.Вместо названия пронумеровать каждый файл в папке.Нашел скрип, и не могу понять что нужно делать.Помогите разобраться.
Хотя в нем все подробно разжевано все равно возникают трудности. |
Цитата:
|
IVa_, Просто пронумеровать? Без названия? Я переименовываю исходя из тегов (с помощью taglib-sharp). Ваш вариант:
Код:
$dirs = gci "d:\music" -dir -recurse |
Да названия не к чему, перебрал, лучшие треки.Хотя и с название не помешает заморочек больше.
Код:
Get-ChildItem : Не удается найти параметр, соответствующий имени параметра "dir |
IVa_, опять предложу воспользоваться ReNamer ;), он умеет работать и с тэгами.
|
IVa_, А какая версия Powershell?
Код:
$host.version.tostring() Код:
$dirs = gci "d:\music" -recurse | ? { $_.psiscontainer } |
Цитата:
|
|
Foreigner, перефразирую вопрос: каким именно образом, по Get-Help или иначе (но локально), можно выяснить параметры командлета, специфичные для конкретного провайдера? Ибо контекст-то есть, как я понимаю, но как выяснить указанные детали?!
|
Iska, Наверное никак... Сам случайно натолкнулся в чьем-то скрипте на параметр -directory, ну и пошел в яндекс.
Я пытался так (но не знаю правильно ли вообще): Код:
help get-childitem -functionality 'filesystem' |
Убрал ключ -lit и все пошло нормально, только это с ключом -whatif.В реальности применю скрипт когда все соберу, подкинули еще файликов, нужно все это перебрать.Я так понимаю в каждой папке файлы будут переименованы с индексом 001-009.Если да то это почти то что нужно.С найденного мною скрипта добавлю еще создание плейлиста.
Версия PS была обновлена только я не могу понять как эти обновления вступают в силу.А так наверное V.1. а нет проверил 2.0 Iska, Программу тоже загружу посмотрю, и оценю её в работе.Русский в настройках имеется? Foreigner, -lit что это за командлет ? Без него все идет, без потерь.Ничего я не произойдет.С моими mp3шками. |
Указать параметр Path и какой провайдер интересует:
Get-help Get-ChildItem -Path cert:\ |
Foreigner, если попробовать тупо:
Код:
Get-Help FileSystem |
Kazun, Что с этим делать?
|
Kazun, Все равно выводит обычную справку:
Код:
Get-help Get-ChildItem -Path cert:\ |
Цитата:
|
Get-help Get-ChildItem -Path cert:\
SYNTAX Get-ChildItem [[-Path] <String[]>] [[-Filter] <String>] [-Exclude <String[]>] [-Force] [-Include <String[]>] [-Name ] [-Recurse] [-UseTransaction [<SwitchParameter>]] [<CommonParameters>] Get-ChildItem [[-Filter] <String>] [-Exclude <String[]>] [-Force] [-Include <String[]>] [-Name] [-Recurse] -Literal Path <String[]> [-UseTransaction [<SwitchParameter>]] [<CommonParameters>] Get-ChildItem [-CodeSigningCert] [-DnsName <string>] [-EKU <string>] [-ExpiringInDays <int>] [-SSLServerAuthenticat ion] [<CommonParameters>] PS > Get-help Get-ChildItem -Path cert:\ -Parameter CodeSigningCert -CodeSigningCert [<SwitchParameter>] Gets only those certificates with code-signing authority. This parameter gets certificates that have "Code Signing " in their EnhancedKeyUsageList property value. PS > Get-help Get-ChildItem -Parameter CodeSigningCert Get-help : No parameter matches criteria CodeSigningCert. At line:1 char:1 + Get-help Get-ChildItem -Parameter CodeSigningCert Так что не соглашусь с данным заявлением. ЗЫ. Для FileSystem - Get-help Get-ChildItem -Path C:\ -Parameter ReadOnly |
Цитата:
Цитата:
Код:
> Get-help Get-ChildItem -Path C:\ -Parameter ReadOnly |
Для начала не плохо бы озвучить версию PowerShell: The ReadOnly parameter was introduced in Windows PowerShell 3.0.
PS > Get-help Get-ChildItem -Path C:\ -Parameter ReadOnly -ReadOnly [<SwitchParameter>] Gets only read-only files and directories (folders). To get only read-only items, use the ReadOnly parameter, its "ar" alias, or the ReadOnly value of the Attributes pa rameter. To exclude read-only items, use the Attributes parameter. Все мои примеры v3 и выше. |
Kazun,
Код:
> $host.version Код:
> get-host |
Kazun, спасибо, ясно. У меня, к сожалению, совершенно одинаково для:
Код:
Get-Help Get-ChildItem |
В PowerShell v2 - командлет Get-Help работает странно, поэтому используют Get-Command:
http://www.nivot.org/blog/post/2010/...amicParameters |
Kazun, кошмар. Ну, хотя бы так :(.
|
Ага, прояснения теперь ждут меня.Всем спасибо
|
Цитата:
|
IVa_, Ничего не мешает.
|
Цитата:
Код:
PS C:\Users\TEMP> $dirs = gci "C:\Users\MOC\Desktop\pdf\" -dir -recurse |
IVa_, Значит ваша версия PowerShell ниже 4-й или даже 3-й:
Код:
$dirs = gci "C:\Users\MOC\Desktop\pdf\" -recurse | where { $_.psiscontainer } |
Вторая версия. До четвертой обновить не получается(
|
Цитата:
|
Iska, да хватает и, то что есть, только сталкиваешься с непонятными ошибками,а за отсутствием профессиональных знаний в области администрирования, исправить быстро не получается, так что есть смысл обновиться до последней версии.
|
Последний скрипт работает на не совсем свежей версии.
Код:
$dirs = gci "C:\Users\MOC\Desktop\book" -recurse | where { $_.psiscontainer } ", не затронул файлы в директории book "C:\Users\MOC\Desktop\book" что не допустило переименовать файлы. Постойте, скрипт работает со всеми форматами, вот с изображением не хочет работать /*.jpg ?. Не подумайте что пудрю мозг, навожу порядок. |
Цитата:
|
IVa_, Можно обойтись без rename-item, заменив его на move-item (вроде во второй версии у него есть параметр -literalpath)
На самом деле можно и Rename-Item без -LiteralPath. Он, по факту, мне нужен был только для переименования файлов, содержащих квадратные скобки "[" и "]". |
Цитата:
|
Обновления не хочу ставить,вполне достаточно того что имеется. А вот с литературой и справкой дела обстоят совершенно иначе, к моему удивлению вся полезная литература не является бесплатная, что мешает узнать более подробно о всяческих приемах и процессах написания и не забуду упомянуть правила написания.
Код:
Не удается индексировать в объект типа System.IO.FileInfo. Код:
$dirs = gci "D:\Iva\электрон.библиотек\PowerShell\Vk.com PowerShell" -recurse | where { $_.psiscontainer } |
IVa_, Запустил в режиме второй версии, действительно ошибка. Исправьте эту строку:
Код:
$files = @(gci $dir.fullname '*.jpg') На счет книг. Вот ссылка на отличный материал: http://powershell.com/cs/blogs/ebookv2/default.aspx Раньше была доступна в формате PDF, могу скинуть. |
Цитата:
|
|
Ничего не видно, ссылка не доступна. Если есть возможность передать письмом буду рад:)
|
Происходит следующее? это при переименовании mp3.В чем дело не могу понять.
Не удается индексировать в объект типа System.IO.FileInfo. |
IVa_, Попробуйте заменить rename-item на move-item с параметром -LiteralPath
|
IVa_, вам скрипт только ради интереса нужен? А то ведь есть готовые и удобные решения.
Например [SVS] Rename Files - универсальная программа переименования файлов, MP3 тегов и текста Ну и до кучи - Переименование файлов |
yurfed, я уже пытался ажник во втором сообщении предложить автору подобное ;).
|
Iska, Для разовых действий конечно так. А вот если, допустим, хочется автоматизировать процесс переименования файлов? Мне, например, лень лезть в папку и переименовывать новые, легче запустить скрипт, благо консоль всегда открыта.
|
Цитата:
Цитата:
|
Я тихонечко оставлю тут батник, и пойду дальше.
Переменную path поменять на путь к папке с mp3. Не терпит скобочек в именах файлов - "(" & ")". Код:
@echo off |
Цитата:
Код:
Не удается индексировать в объект типа System.IO.FileInfo. |
PowerShel v2.0
Код:
$dirs = gci "C:\Users" -recurse Скрипт также переименовывает файлы в дочерних директориях. Параметр -whatif тестирует скрипт, без переименования.Для работы уберите данный параметр. Благодарю Foreigner за предоставление данного скрипта. |
Возможно такое при переименовании файлов создать текстовый файл который сохранит все имена переименованных файлов.
То-есть сначала сохранить в текстовый файл имена файлов до переименования, а после переименовать? |
Как-то так, не проверял
Код:
.... |
Цитата:
Код:
$dirs = gci "C:\Users\MOC\Desktop\Прожиг\Music" -recurse file1.mp3 file2.mp3 file3.mp3 Если не ошибаюсь за это отвечает параметр -f Цитата:
|
Код:
$dirs = gci "C:\Users\MOC\Desktop\Прожиг" -recurse Код:
$MOC = gci "C:\Users\MOC\Desktop\Прожиг\Music\" -recurse |
Время: 21:16. |
Время: 21:16.
© OSzone.net 2001-