PDA

Показать полную графическую версию : [решено] нужно переименовать большую коллекцию MP3 файлов


Страниц : 1 [2] 3

Iska
18-02-2015, 22:04
Kazun, спасибо, ясно. У меня, к сожалению, совершенно одинаково для:
Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path cert:\
Get-Help Get-ChildItem -Path c:\
Версия 2.0.

Kazun
18-02-2015, 22:08
В PowerShell v2 - командлет Get-Help работает странно, поэтому используют Get-Command:

http://www.nivot.org/blog/post/2010/01/18/PowerShell20AboutDynamicParameters

Iska
18-02-2015, 22:22
Kazun, кошмар. Ну, хотя бы так :(.

IVa_
18-02-2015, 22:59
Ага, прояснения теперь ждут меня.Всем спасибо

IVa_
06-03-2015, 07:32
Просто пронумеровать? Без названия? Я переименовываю исходя из тегов (с помощью taglib-sharp). Ваш вариант: »
данный вариант применим к другим типам файлов ?или что мешает при смене типа файлов на PDF переименовывать файлы?

Foreigner
06-03-2015, 09:02
IVa_, Ничего не мешает.

IVa_
06-03-2015, 14:02
Ничего не мешает »
PS C:\Users\TEMP> $dirs = gci "C:\Users\MOC\Desktop\pdf\" -dir -recurse

foreach ($dir in $dirs) {

if ( test-path "$($dir.fullname)\*.pdf" ) {

$files = gci $dir.fullname '*.pdf'

1..$files.count | % { rename-item -lit $files[($_-1)].fullname "$( '{0:d3}' -f $_ ).pdf" }
}}

Get-ChildItem : Не удается найти параметр, соответствующий имени параметра "dir".
строка:1 знак:45
+ $dirs = gci "C:\Users\MOC\Desktop\pdf\" -dir <<<< -recurse
+ CategoryInfo : InvalidArgument: (:) [Get-ChildItem], ParameterBind
ingException
+ FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Command
s.GetChildItemCommand

Foreigner
06-03-2015, 14:15
IVa_, Значит ваша версия PowerShell ниже 4-й или даже 3-й:

$dirs = gci "C:\Users\MOC\Desktop\pdf\" -recurse | where { $_.psiscontainer }

foreach ($dir in $dirs) {

if ( test-path "$($dir.fullname)\*.pdf" ) {

$files = gci $dir.fullname '*.pdf'

1..$files.count | % { rename-item -lit $files[($_-1)].fullname "$( '{0:d3}' -f $_ ).pdf" }
}}

IVa_
06-03-2015, 14:19
Вторая версия. До четвертой обновить не получается(

Iska
06-03-2015, 14:48
До четвертой обновить не получается( »
Старайтесь. Мне, на XP, понятно — никак. А Вам можно.

IVa_
06-03-2015, 14:57
Iska, да хватает и, то что есть, только сталкиваешься с непонятными ошибками,а за отсутствием профессиональных знаний в области администрирования, исправить быстро не получается, так что есть смысл обновиться до последней версии.

IVa_
07-03-2015, 21:48
Последний скрипт работает на не совсем свежей версии.

$dirs = gci "C:\Users\MOC\Desktop\book" -recurse | where { $_.psiscontainer }

foreach ($dir in $dirs) {

if ( test-path "$($dir.fullname)\*.pdf" ) {

$files = gci $dir.fullname '*.pdf'

1..$files.count | % { rename-item -lit $files[($_-1)].fullname "$( '{0:d3}' -f $_ ).pdf" }
}}
Rename-Item : Не удается найти параметр, соответствующий имени параметра "lit".
строка:9 знак:43
+ 1..$files.count | % { rename-item -lit <<<< $files[($_-1)].fullname "$(
'{0:d3}' -f $_ ).pdf" }
+ CategoryInfo : InvalidArgument: (:) [Rename-Item], ParameterBin
dingException
+ FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Comm
ands.RenameItemCommand

переименовал файлы одной дочерней директории""C:\Users\MOC\Desktop\book\pdf"
", не затронул файлы в директории book "C:\Users\MOC\Desktop\book" что не допустило переименовать файлы.
Постойте, скрипт работает со всеми форматами, вот с изображением не хочет работать /*.jpg ?.
Не подумайте что пудрю мозг, навожу порядок.

Iska
07-03-2015, 21:57
Rename-Item : Не удается найти параметр, соответствующий имени параметра "lit". строка:9 знак:43 »
Во второй версии у указанного командлета отсутствует параметр «-LiteralPath».

Foreigner
07-03-2015, 22:40
IVa_, Можно обойтись без rename-item, заменив его на move-item (вроде во второй версии у него есть параметр -literalpath)

На самом деле можно и Rename-Item без -LiteralPath. Он, по факту, мне нужен был только для переименования файлов, содержащих квадратные скобки "[" и "]".

Iska
07-03-2015, 23:09
(вроде во второй версии у него есть параметр -literalpath) »
Есть.

IVa_
07-03-2015, 23:36
Обновления не хочу ставить,вполне достаточно того что имеется. А вот с литературой и справкой дела обстоят совершенно иначе, к моему удивлению вся полезная литература не является бесплатная, что мешает узнать более подробно о всяческих приемах и процессах написания и не забуду упомянуть правила написания.
Не удается индексировать в объект типа System.IO.FileInfo.

$dirs = gci "D:\Iva\электрон.библиотек\PowerShell\Vk.com PowerShell" -recurse | where { $_.psiscontainer }

foreach ($dir in $dirs) {

if ( test-path "$($dir.fullname)\*.jpg" ) {

$files = gci $dir.fullname '*.jpg'

1..$files.count | % { rename-item $files[($_-1)].fullname "$( '{0:d3}' -f $_ ).jpg" }
}}

Foreigner
08-03-2015, 00:46
IVa_, Запустил в режиме второй версии, действительно ошибка. Исправьте эту строку:

$files = @(gci $dir.fullname '*.jpg')

Дело в том, что если в папке только один jpg-файл, то переменная $files имеет строковой тип (string), а предполагается массив (array).

На счет книг. Вот ссылка на отличный материал: http://powershell.com/cs/blogs/ebookv2/default.aspx
Раньше была доступна в формате PDF, могу скинуть.

IVa_
08-03-2015, 01:16
На счет книг. » не откажусь.Отличный ресурс.

Foreigner
08-03-2015, 01:26
http://rghost.ru/7LBnHYp6l

IVa_
08-03-2015, 01:52
Ничего не видно, ссылка не доступна. Если есть возможность передать письмом буду рад:)




© OSzone.net 2001-2012