Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

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

Ответить
Настройки темы
CMD/BAT - [решено] Копирование файла в кучу разных папок с переименованием его имени в имя папки.

Новый участник


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

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


Добрый день! Помогите пожалуйста с батником.
Нужно скопировать файл в кучу папок, при этом задавая имя файлу такое же как и имя папки, в которую он копируется (расширение файла не меняется, только имя).

Отправлено: 12:00, 25-05-2020

 

Ветеран


Contributor


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

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


Bagsya, где находится (например, в какой-то папке)
Код: Выделить весь код
@Echo Off
	Set "FileIn=Z:\Box_In\Обычная ерунда.ха ха ха"
	Set "BoxOut=Z:\Box_Out"

	For %%f In ("%FileIn%") Do ( 
		FOR /F "usebackq delims=" %%d IN (`2^>nul Dir "%BoxOut%" /S /B /A:D`) DO >nul Copy "%FileIn%" "%%d\%%~nxd%%~xf"
	)
Exit /B
или откуда берётся (напримпр, список) куча?
Код: Выделить весь код
@Echo Off
	Set "FileIn=Z:\Box_In\Обычная ерунда.ха ха ха"
	Set BoxOut="Z:\Box_Out\_Work" "Z:\Box_Out\_XLS" "Z:\Box_Out\Дискета от книги" "Z:\Музыка\Манго Манго"

	For %%f In ("%FileIn%") Do ( 
		FOR %%d IN (%BoxOut%) DO >nul 2>&1 Copy "%FileIn%" "%%~d\%%~nxd%%~xf"
	)
Exit /B

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 25-05-2020 в 14:20.

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

Отправлено: 13:45, 25-05-2020 | #2



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

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


Ветеран


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

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


Bagsya, тогда Вам следовало бы озадачиться вопросом — как узнать перечень этой кучи папок?

Отправлено: 14:13, 25-05-2020 | #3


Новый участник


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

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


Предметно так, полный путь файла: e:\4\a0001.vhdshows и его надо скопировать во все папки находящиеся в e:\5 (там папки вида e:\5\a0001, e:\5\a0002 и т.д., меняются буквы и цифры). И вот в папку a0002 файл должен копироваться с именем a0002.vhdshows, а в папку, например, с0845 - с именем с0845.vhdshows.

Отправлено: 14:49, 25-05-2020 | #4


Ветеран


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

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


Код: Выделить весь код
@echo off
set "file=e:\4\a0001.vhdshows"
set "sdir=e:\5"

call :#copy "%sdir%" "%file%"
pause& exit

:#copy
 for /d /r "%~1" %%a in (*) do >nul copy "%~2" "%%a\%%~nxa%~x2"
exit /b
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:20, 25-05-2020 | #5


Новый участник


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

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


вот так прописал, запустил, пишет "отказано в доступе".

Код: Выделить весь код
@Echo Off
	Set "FileIn=e:\4\a0001.vghdshows"
	Set "BoxOut=e:\5"

	For %%f In ("%FileIn%") Do ( 
		FOR /F "usebackq delims=" %%d IN (`2^>nul Dir "%BoxOut%" /S /B /A:D`) DO >nul Copy "%FileIn%" "%%d\%%~nxd%%~xf"
	)
Exit /B
Тоже пишет "отказано в доступе"
Код: Выделить весь код
@echo off
set "file=e:\4\a0001.vhdshows"
set "sdir=e:\5"

call :#copy "%sdir%" "%file%"
pause& exit

:#copy
 for /d /r "%~1" %%a in (*) do >nul copy "%~2" "%%a\%%~nxa%~x2"
exit /b

Отправлено: 15:22, 25-05-2020 | #6


Ветеран


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

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


тогда запуск от админа или ярлык с запускать с админ правами или решать проблему с доступом, к нам-то какие претензии.

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

Отправлено: 15:55, 25-05-2020 | #7


Новый участник


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

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


Сам не понимаю почему "отказано в доступе". Командную строку с правами администратора запускал и из нее уже батник и сам батник по правой кнопке мыши выбирал запуск от администратора. Вин7, домашний комп, ничего особенного нет.

Отправлено: 16:08, 25-05-2020 | #8


Новый участник


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

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


Вот скриншоты папок и результат обоих батников.

Последний раз редактировалось Bagsya, 25-05-2020 в 23:00.


Отправлено: 16:16, 25-05-2020 | #9


Ветеран


Contributor


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

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


Bagsya, Проделайте батник, файл C:\txt.txt прикрепите к сообщению
Код: Выделить весь код
@Echo Off
	Set "FileIn=e:\4\a0001.vghdshows"
	Set "BoxOut=e:\5"

	>c:\txt.txt 2>&1 dir "%FileIn%" /b /a:-D
	>>c:\txt.txt 2>>&1 dir "%BoxOut%" /b /a:D /S
Exit /B

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

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

Отправлено: 16:17, 25-05-2020 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Копирование файлов из разных папок yamixon Скриптовые языки администрирования Windows 0 14-12-2016 15:34
CMD/BAT - Имя файла из его содержимого Sinus Скриптовые языки администрирования Windows 6 26-05-2014 08:00
[решено] Копирование файла по заданному пути для разных типов ОС foma555 AutoIt 9 30-06-2012 11:54
VBS/WSH/JS - Добавить в первую строку текстового файла его имя и дату SergeyVD Скриптовые языки администрирования Windows 6 06-07-2011 20:06
Как переименовать имя аккаунта в XP с изменением имени его папки и других файлов. Alikber Microsoft Windows 2000/XP 4 06-03-2006 00:15




 
Переход