Показать полную графическую версию : [решено] нужно переименовать большую коллекцию MP3 файлов
Происходит следующее? это при переименовании mp3.В чем дело не могу понять.
Не удается индексировать в объект типа System.IO.FileInfo.
Foreigner
08-03-2015, 09:06
IVa_, Попробуйте заменить rename-item на move-item с параметром -LiteralPath
IVa_, вам скрипт только ради интереса нужен? А то ведь есть готовые и удобные решения.
Например [SVS] Rename Files - универсальная программа переименования файлов, MP3 тегов и текста (http://www.svs-vadella.narod.ru/programs_svs/svs_renamefiles.html)
Ну и до кучи - Переименование файлов (http://www.softportal.com/dlcategory-397-1-0-0.html)
yurfed, я уже пытался ажник во втором сообщении предложить автору подобное ;).
Foreigner
08-03-2015, 14:13
Iska, Для разовых действий конечно так. А вот если, допустим, хочется автоматизировать процесс переименования файлов? Мне, например, лень лезть в папку и переименовывать новые, легче запустить скрипт, благо консоль всегда открыта.
А вот если, допустим, хочется автоматизировать процесс переименования файлов? Мне, например, лень лезть в папку и переименовывать новые, легче запустить скрипт, благо консоль всегда открыта. »
Он умеет:
ReNamer can be run in command line mode, with lots of parameters. This allows you to select your files in explorer (or any other application) and do one-touch renaming.
P.S. Я ничуть не возражаю против использования скриптов.
iccup.platoon@vk
08-03-2015, 17:17
Я тихонечко оставлю тут батник, и пойду дальше.
Переменную path поменять на путь к папке с mp3. Не терпит скобочек в именах файлов - "(" & ")".
@echo off
setlocal enabledelayedexpansion
set i=0
set path=D:\sandbox\BATTEST\
for /f "tokens=*" %%F in ('dir !path!*.mp3 /b') do (
set /a i=i+1 & ren "%%F" "!i!%%~xF"
)
rename-item на move-item с параметром -LiteralPath » параметр -lit не ругается, но ошибка Не удается индексировать в объект типа System.IO.FileInfo.
остается, интересное,то что файлы переименовывает за исключением данной ошибки все работает.
PowerShel v2.0
$dirs = gci "C:\Users" -recurse
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" -whatif }
}}
Рабочий скрипт, групповое переименования файлов.(для изменения формата файлов вписать вместо jpg нужный формат )
Скрипт также переименовывает файлы в дочерних директориях.
Параметр -whatif тестирует скрипт, без переименования.Для работы уберите данный параметр.
Благодарю Foreigner за предоставление данного скрипта.
Возможно такое при переименовании файлов создать текстовый файл который сохранит все имена переименованных файлов.
То-есть сначала сохранить в текстовый файл имена файлов до переименования, а после переименовать?
Foreigner
13-03-2015, 16:08
Как-то так, не проверял
....
1..$files.count | % {
rename-item $files[($_-1)].fullname "$( '{0:d3}' -f $_ ).jpg" -whatif
"$($files[($_-1)].fullname) => $( '{0:d3}' -f $_ ).jpg" | add-content log.txt
}}}
Как-то так, не проверял »
$dirs = gci "C:\Users\MOC\Desktop\Прожиг\Music" -recurse
foreach ($dir in $dirs){
1..$files.count | % {
rename-item $files[($_-1)].fullname "$dirs.mp3" -whatif
"$($files[($_-1)].fullname) => $dirs.mp3" | add-content log.txt
}}
Скрипт отлично отрабатывает,но есть мелкий недочет, не могу сообразить каким путем выстроить в тексте файлы в столбец.То есть вот так :
file1.mp3
file2.mp3
file3.mp3
Если не ошибаюсь за это отвечает параметр -f$( '{0:d3}' -f $_ »
$dirs = gci "C:\Users\MOC\Desktop\Прожиг" -recurse
foreach ($dir in $dirs){
1..$files.count | % {
rename-item $files[($_-1)].fullname "$dirs( '{0:d3}' -f $_ ).mp3" -whatif
"$($files[($_-1)].fullname) => $( $dir -f $_ ).mp3" | add-content log.txt
}}
Тему закрываю всем спасибо
$MOC = gci "C:\Users\MOC\Desktop\Прожиг\Music\" -recurse
#Назначаем путь для переменной
foreach ($dir in $dirs){
1..$file.count | % {
rename-item $files[($_-1)].fullname -whatif
"$($file[($_)].fullname) => $dir " | add-content log.txt
}}
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC