Valek271183 |
01-06-2014 23:01 2358670 |
Переименовать разные имена
Нужно переименовать документы начинающиеся с одинаковых строк: Накладная приёмки Васи, Накладная приёмки Пети и т д. и переименовать их в DOC1, DOC2 и т.д. Как это можно сделать с помощью командной строки?
|
По каким принципам определять «одинаковые строки»? Ибо предлагаемые Вами:
тоже являются документами, «начинающимися с одинаковых строк».
|
Valek271183 |
01-06-2014 23:43 2358684 |
DOC1, DOC2 это имена которыми должны будут называться документы, и не важно кому какое присвоится имя
|
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, вопрос был по поводу:
Цитата:
Цитата Valek271183
начинающиеся с одинаковых строк »
|
Либо Вы некорректно ставите задачу.
firstarey, не хватает обработки ситуации, когда какие-то из «DOC XX.ext» уже наличествуют в папке.
|
Цитата:
Цитата Iska
не хватает обработки ситуации, когда какие-то из «DOCXX.ext» уже наличествуют в папке. »
|
ну задача описана весьма кратко. я её понял следующим образом:
есть каталог в котором содержаться
Цитата:
Цитата Valek271183
документы начинающиеся с одинаковых строк: Накладная приёмки Васи, Накладная приёмки Пети »
|
и их необходимо переименовать в вот с учетом Вашего замечания. но думаю в данном случае дорабатывать можно долго не зная конечной цели.
Код:
# 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 2358835 |
Iska, DOС ещё не существует, нужно преименовать существующие документы в DOC к которому будет добавляться номер начиная с единицы, и сколько будет документов столько и будет файлов DOC со своим номером на конце (Например Накладная приёмки Васи станет DOC1, Накладная приёмки Пети станет DOC2, Накладная приёмки Феди станет DOC3 и т.д. )
|
Цитата:
Цитата Valek271183
DOС ещё не существует, нужно преименовать существующие документы в DOC »
|
тогда пожалуйста - смотрим 4 сообщение
|
Valek271183 |
02-06-2014 13:32 2358872 |
firstarey,
Цитата:
Цитата Valek271183
это можно сделать с помощью командной строки? »
|
|
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
меняете разрешение файла »
|
Коллега, очевидно, Вы имели ввиду " расширение файла". ;)
|
gora, ну да :) время было к вечеру.. спасибо за внимательность
|
Время: 07:15.
© OSzone.net 2001-