Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Переименование с сохранением цифр

Ответить
Настройки темы
CMD/BAT - [решено] Переименование с сохранением цифр

Пользователь


Сообщения: 93
Благодарности: 2

Профиль | Отправить PM | Цитировать


Добрый день! С "Старым" Новым Годом!

Помогите, пожайлуста, с переименованием группы файлов где в имени необходимо оставить все присутствующие цифры и символы (точка, тире, подчеркивание), а из букв оставить только две первые встречающиеся.

Пы.Сы. И желательно какую-нибудь проверку чтобы не было повторов.

Отправлено: 11:13, 14-01-2014

 

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата pzh2393:
И желательно какую-нибудь проверку чтобы не было повторов. »
И желательно какое-нибудь описание, что предпринимать в этом случае.

Отправлено: 13:30, 14-01-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 93
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата Iska:
И желательно какое-нибудь описание, что предпринимать в этом случае. »
думал над этим... наверное добавлять третью букву. Если же вдруг каким чудом и в этом случае совпадет отменить переименование или добавить четвертую - что проще реализовать.

Отправлено: 16:39, 14-01-2014 | #3


Ветеран


Сообщения: 1759
Благодарности: 966

Профиль | Цитировать


pzh2393, На PowerShell устроит?
Код: Выделить весь код
function rename ( $old, $e ) {

    0..( $old.length - 1 ) | % {

        if ( $old[$_] -match '[a-zA-Z]' ) {
    
            $cnt++
            if ( $cnt -le 2 ) { $new += $old[$_] }
        
        }
    
        else { $new += $old[$_] }
         
    }
    
    if ( $old -ne $new ) {
    
    while ( test-path "$( $new )$( $e )" ) { $new += [char] ( get-random -min 65 -max 90 ) }

    }

    ren -literal "$( $old )$( $e )" "$( $new )$( $e )"
    
}

gci | ? { ! $_.psiscontainer } | % { rename $_.basename $_.extension }

Последний раз редактировалось Foreigner, 14-01-2014 в 21:48.

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:12, 14-01-2014 | #4


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Foreigner, некорректно отрабатывает на односимвольных именах — добавляет к ним ещё один символ.
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:42, 14-01-2014 | #5


Ветеран


Сообщения: 1759
Благодарности: 966

Профиль | Цитировать


Iska, Спасибо, исправил

Отправлено: 21:49, 14-01-2014 | #6


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Foreigner, ошибки времени исполнения на таком:
читать дальше »
Код: Выделить весь код
1.txt
1.zip
0001.cmd
114-2.rar
AutoHotkey_L_Install.exe
Destination.txt

наборе.


Update: Понял, наверное, просто в 2.0 нет ещё параметра «-Literal» у «Rename-Item».

Отправлено: 22:01, 14-01-2014 | #7


Ветеран


Сообщения: 1759
Благодарности: 966

Профиль | Цитировать


Цитата Iska:
Цитата:
Понял, наверное, просто в 2.0 нет ещё параметра «-Literal» у «Rename-Item».
Вероятно так, но кажется -literalpath есть у move-item, можно попробовать. Если в именах нет [квадратных скобок], то можно и без этого параметра.

Последний раз редактировалось Foreigner, 14-01-2014 в 22:35.


Отправлено: 22:15, 14-01-2014 | #8


Пользователь


Сообщения: 93
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата Foreigner:
На PowerShell устроит? »
Спасибо, только подскажите пожалуйста, а что в системе должно быть установлено чтобы работал скрипт?
Гугл как-то на этот вопрос отвечает, что все должно и так работать, а вот у меня не работает.

Отправлено: 12:18, 15-01-2014 | #9


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Должен быть установлен Powershell, и разрешено исполнение неподписанных локальных скриптов.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:45, 15-01-2014 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Переименование с сохранением цифр

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Цикл вывода цифр и букв uptorange AutoIt 0 28-12-2013 08:51
[решено] Ввод цифр в Exel saneck Хочу все знать 2 18-10-2012 18:35
[решено] символы вместо Цифр kovrovchanin Автоматическая установка Windows 2000/XP/2003 5 22-05-2010 12:48
СОЛО на клавиатуре. Укрощение цифр 9.0.4 OSZone Software Новости программного обеспечения 0 13-01-2010 20:30




 
Переход