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

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

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

Старожил


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


Конфигурация

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


Нужно переименовать документы начинающиеся с одинаковых строк: Накладная приёмки Васи, Накладная приёмки Пети и т д. и переименовать их в DOC1, DOC2 и т.д. Как это можно сделать с помощью командной строки?

Отправлено: 23:01, 01-06-2014

 

Ветеран


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

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


По каким принципам определять «одинаковые строки»? Ибо предлагаемые Вами:
Цитата Valek271183:
DOC1, DOC2 и т.д. »
тоже являются документами, «начинающимися с одинаковых строк».

Отправлено: 23:29, 01-06-2014 | #2



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

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


Старожил


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

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


DOC1, DOC2 это имена которыми должны будут называться документы, и не важно кому какое присвоится имя

Отправлено: 23:43, 01-06-2014 | #3


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


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

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


Valek271183, могу предложить решение на PowerShell:
Код: Выделить весь код
# http://forum.oszone.net/thread-283009.html
$Files = Get-ChildItem * -Include "*.xml"
ForEach ($SourceFile in $Files) {
	$NamePlus++
	Rename-Item "$SourceFile" "DOC$NamePlus.xml"
}
Write-Host "обработано файлов: `t $NamePlus"
Read-Host "нажмите Enter для выхода"
для примера я использовал файлы xml с произвольными именами.
при необходимости расширение изменяется во 2 и 5 строках

Последний раз редактировалось firstarey, 03-06-2014 в 08:28.


Отправлено: 07:37, 02-06-2014 | #4


Ветеран


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

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


Valek271183, вопрос был по поводу:
Цитата Valek271183:
начинающиеся с одинаковых строк »
Либо Вы некорректно ставите задачу.

firstarey, не хватает обработки ситуации, когда какие-то из «DOCXX.ext» уже наличествуют в папке.

Отправлено: 08:04, 02-06-2014 | #5


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


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

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


Цитата Iska:
не хватает обработки ситуации, когда какие-то из «DOCXX.ext» уже наличествуют в папке. »
ну задача описана весьма кратко. я её понял следующим образом:
есть каталог в котором содержаться
Цитата Valek271183:
документы начинающиеся с одинаковых строк: Накладная приёмки Васи, Накладная приёмки Пети »
и их необходимо переименовать в
Цитата Valek271183:
DOC1, DOC2 и т.д. »
вот с учетом Вашего замечания. но думаю в данном случае дорабатывать можно долго не зная конечной цели.
Код: Выделить весь код
# http://forum.oszone.net/thread-283009.html
$Files = Get-ChildItem * -Include "*.xml"
ForEach ($SourceFile in $Files) {
	if ($($SourceFile.name).Substring(0,3) -ne "Doc") {
		$NamePlus++
		$RenamePlus++
		Rename-Item "$SourceFile" "DOC$NamePlus.xml"
	} else {$NamePlus++}
}
Write-Host "обработано файлов: `t $NamePlus"
Write-Host "из них переименовано: `t $RenamePlus"
Read-Host "нажмите Enter для выхода"

Отправлено: 09:51, 02-06-2014 | #6


Старожил


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

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


Iska, DOС ещё не существует, нужно преименовать существующие документы в DOC к которому будет добавляться номер начиная с единицы, и сколько будет документов столько и будет файлов DOC со своим номером на конце (Например Накладная приёмки Васи станет DOC1, Накладная приёмки Пети станет DOC2, Накладная приёмки Феди станет DOC3 и т.д. )

Отправлено: 12:13, 02-06-2014 | #7


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


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

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


Цитата Valek271183:
DOС ещё не существует, нужно преименовать существующие документы в DOC »
тогда пожалуйста - смотрим 4 сообщение

Отправлено: 12:55, 02-06-2014 | #8


Старожил


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

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


firstarey,
Цитата Valek271183:
это можно сделать с помощью командной строки? »

Отправлено: 13:32, 02-06-2014 | #9


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


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

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


Valek271183, можно:

Код: Выделить весь код
@echo off
Color 0e
rem http://forum.oszone.net/thread-283009.html
set Ext=xml
for %%i in ("*.%Ext%") do set /a NamePlus+=1
echo файлов найдено:	%NamePlus%
ping -n 2 localhost>nul
:gogo
CLS
if "%RenamePlus%"=="%NamePlus%" pause& exit
for %%i in ("*.%Ext%") do set SourceFile=%%~i
echo файл обрабатываем:	%SourceFile%
ping -n 1 localhost>nul
set /a RenamePlus+=1
ren "%SourceFile%" "DOC%RenamePlus%.xml"
goto :gogo
в строке 4 меняете расширение файла на свое

Последний раз редактировалось firstarey, 03-06-2014 в 08:28. Причина: очепяточка

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

Отправлено: 14:33, 02-06-2014 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Установка - Как задать разные имена компьютеров и ключи продуктов при массовом развертывании x-sept Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista 1 21-02-2012 15:57
Переименовать дисковод 881z1 Хочу все знать 0 13-02-2010 22:27
CMD/BAT - когда имена короткие, когда имена длинные ... akrav Скриптовые языки администрирования Windows 6 08-02-2008 11:01
Разные имена разделов реестра при каждой установке Windows Solitude Автоматическая установка Windows 2000/XP/2003 5 11-02-2005 13:53
Разные учетные записи-разные IP (WinXP) ILion Сетевые технологии 1 28-05-2003 10:48




 
Переход