Показать полную графическую версию : [решено] Переименовать разные имена
Valek271183
01-06-2014, 23:01
Нужно переименовать документы начинающиеся с одинаковых строк: Накладная приёмки Васи, Накладная приёмки Пети и т д. и переименовать их в DOC1, DOC2 и т.д. Как это можно сделать с помощью командной строки?
По каким принципам определять «одинаковые строки»? Ибо предлагаемые Вами:
DOC1, DOC2 и т.д. »
тоже являются документами, «начинающимися с одинаковых строк».
Valek271183
01-06-2014, 23:43
DOC1, DOC2 это имена которыми должны будут называться документы, и не важно кому какое присвоится имя
firstarey
02-06-2014, 07:37
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 строках
Valek271183, вопрос был по поводу:
начинающиеся с одинаковых строк »
Либо Вы некорректно ставите задачу.
firstarey, не хватает обработки ситуации, когда какие-то из «DOCXX.ext» уже наличествуют в папке.
firstarey
02-06-2014, 09:51
не хватает обработки ситуации, когда какие-то из «DOCXX.ext» уже наличествуют в папке. »
ну задача описана весьма кратко. я её понял следующим образом:
есть каталог в котором содержаться документы начинающиеся с одинаковых строк: Накладная приёмки Васи, Накладная приёмки Пети »
и их необходимо переименовать в 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 для выхода"
Valek271183
02-06-2014, 12:13
Iska, DOС ещё не существует, нужно преименовать существующие документы в DOC к которому будет добавляться номер начиная с единицы, и сколько будет документов столько и будет файлов DOC со своим номером на конце (Например Накладная приёмки Васи станет DOC1, Накладная приёмки Пети станет DOC2, Накладная приёмки Феди станет DOC3 и т.д. )
firstarey
02-06-2014, 12:55
DOС ещё не существует, нужно преименовать существующие документы в DOC »
тогда пожалуйста - смотрим 4 (http://forum.oszone.net/post-2358747-4.html) сообщение
Valek271183
02-06-2014, 13:32
firstarey, это можно сделать с помощью командной строки? »
firstarey
02-06-2014, 14:33
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:26
gora, ну да :) время было к вечеру.. спасибо за внимательность
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.