Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/47: Рейтинг темы: голосов - 47, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 08.07.2017
Сообщений: 4

CMD. Копирование файлов в цикле с заменой символов в имени

08.07.2017, 09:47. Показов 9355. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.

Почта уверен что уже было много раз. Пока ничего не нашел.

Прошу помощи.

Есть папка С:\Папка1\
В ней лежат файлы по маске "Форма1 2017_01_01.xlsx"

Нужно скопировать все файлы из этой папки в папку С:\Папка2\
Но имена должны быть без последних трех знаков т.е. "Форма1 2017_01.xlsx"
Можно взять первые 14 символов (имя стаблильно) или удалить последние три, без разницы.

Подскажите? =)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.07.2017, 09:47
Ответы с готовыми решениями:

Cmd копирование и изменение имени
Добрый вечер. Прошу помощи при создании кода. Необходимо файл 1.txt из папки с:\1\ скопировать в папку c:\2\ но с другим именем. Можно...

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

Копирование системы с заменой файлов
Вчера после установки обнов лягла винда, а образ сделанный недавно не работает. На ноуте можно восстановить родную систему, а у меня есть...

6
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
08.07.2017, 11:12
например на основе этого
Windows Batch file
1
2
3
4
5
6
7
8
9
@echo off
set "name=Форма1 2017_01_01.xlsx"
call :min3 "%name%"
pause& exit
 
:min3
 set "sname=%~n1"
 echo %sname:~,-3%%~x1
exit /b
Добавлено через 4 минуты
или так
Windows Batch file
1
2
3
4
5
6
7
8
@echo off
setlocal enabledelayedexpansion
set "name=Форма1 2017_01_01.xlsx"
for /f "delims=" %%a in ("%name%") do (
 set "sname=%%~na"
 echo !sname:~,-3!%%~xa
)
pause
Добавлено через 2 минуты
все-равно for нужен для полного кода
Windows Batch file
1
2
3
4
5
6
7
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /a-d/b "*.xlsx"') do (
 set "sname=%%~na"
 echo !sname:~,-3!%%~xa
)
pause
1
0 / 0 / 0
Регистрация: 08.07.2017
Сообщений: 4
08.07.2017, 11:32  [ТС]
Сделал такой код

@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in ("C:\Test\Forma*.xlsx") do (
set "sname=%%~na"
echo !sname:~,-4!%%~xa
)

Но он выкатывает только по одному файлу, а мне нужно по всем и копирование с переименованием на это новое имя =)

Добавлено через 7 минут
Поправка

@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in ("C:\Test\Forma*.xlsx") do (
set "sname=%%~na"
echo !sname:~,-4!%%~xa

COPY "%%~a" "C:\Test\2\!sname:~,-3!%%~xa.xlsx"
)

Так, но не копирует в цикле

Добавлено через 1 минуту
При том он еще и файлы коверкает, было 9 кб стало 1 кб и не открывает

Добавлено через 3 минуты
Если так

@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in ("C:\Test\Forma*.xlsx") do (
set "sname=%%~na"
echo !sname:~,-4!%%~xa
COPY "%%~a" "C:\Test\2"
)

То копирует файлы, но имена не меняет =(
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
08.07.2017, 11:40
Лучший ответ Сообщение было отмечено NikVladi как решение

Решение

Windows Batch file
1
2
3
4
5
6
7
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /a-d/b "C:\Test\Forma*.xlsx"') do (
 set "sname=%%~na"
 copy "C:\Test\%%a" "Диск:\папка\!sname:~,-3!%%~xa"
)
pause
Добавлено через 3 минуты
удобнее, если меняются пути
Windows Batch file
1
2
3
4
5
6
7
8
9
10
@echo off
setlocal enabledelayedexpansion
set "d1=C:\Test"
set "d2=C:\Test\2"
cd /d "%d1%"
for /f "delims=" %%a in ('dir /a-d/b "Forma*.xlsx"') do (
 set "sname=%%~na"
 copy "%%a" "%d2%\!sname:~,-3!%%~xa"
)
pause
1
0 / 0 / 0
Регистрация: 08.07.2017
Сообщений: 4
08.07.2017, 11:46  [ТС]
Все, спасибо!!!
0
0 / 0 / 0
Регистрация: 31.03.2018
Сообщений: 2
31.03.2018, 18:56
А как сделать тоже самое, но с добавлением символа(ов) перед именем файла?
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
31.03.2018, 23:28
Цитата Сообщение от ddel Посмотреть сообщение
добавлением символа(ов) перед именем файла
copy "%%a" "Путь\xxx%%~nxa"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.03.2018, 23:28
Помогаю со студенческими работами здесь

Поиск и копирование файлов с заменой дубликатов
Добрый день! По работе понадобилось сделать BAT-файл, который просматривает сетевую директорию "\\serv\dir\" и ищет там файлы...

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

Копирование новых файлов с заменой старых
Как реализовать в VB замену файлов при копировании? Использую команду : My.Computer.FileSystem.CopyFile("C:\My File.exe",...

Копирование: Ввод имени папки и копирование из нее файлов
Доброго времени суток! Реально ли реализовать подобное с помощью bat ? Знаю, что можно создать папку с именем, которое можно задать. ...

Копирование файлов из папки в другую папку с заменой
Хочу для автообновления сделать копирование из папки Update в папку с .exe. Thread UPDcenter = new Thread(() => { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru