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

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

Ответить
Настройки темы
CMD/BAT - Копирование из списка

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


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

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


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

Есть список C:\test\list.txt, в этом списке название файлов, каждое название с новой строки.
В папке C:\test лежит куча файлов с названиями из list.txt, эти файлы имеют расширение txt.
Нужно скопировать определенные(которые есть в list.txt) файлы из C:\test в папку C:\123.
На форуме есть похожие темы, но ни одна не сработала (там условия другие).

Отправлено: 04:29, 15-12-2018

 

Ветеран


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

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


Цитата krambrige:
Есть список C:\test\list.txt, в этом списке название файлов, каждое название с новой строки. »
Только имена? Или полные пути?

Для случая полных путей:
Код: Выделить весь код
for /f "usebackq delims=" %%i in ("C:\test\list.txt") do copy "%%~i" "C:\123\*.*"
Для только имён:
Код: Выделить весь код
for /f "usebackq delims=" %%i in ("C:\test\list.txt") do copy "C:\test\%%~i" "C:\123\*.*"

Отправлено: 05:02, 15-12-2018 | #2



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

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


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


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

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


Мне без разницы в принципе, попробовал оба способа, пишет "Не удается найти указанный файл".



Я так понимаю это кодировка не правильная, нагуглил разные способы: через notepad в OEM-866, ansi, chcp 1251 и тому подобные, что-то не сработало у меня.

Последний раз редактировалось krambrige, 15-12-2018 в 06:44.


Отправлено: 05:47, 15-12-2018 | #3


Ветеран


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

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


krambrige, файл C:\test\list.txt должен быть сохранён в кодировке OEM/866.

Отправлено: 06:45, 15-12-2018 | #4


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


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

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


Поменял, все равно такая же ситуация.

Отправлено: 06:59, 15-12-2018 | #5


Ветеран


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

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


krambrige, наберите в консоли chcp - что выдаёт?

Отправлено: 10:48, 15-12-2018 | #6


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


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

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


Выдает
Текущая кодовая страница: 866

Я решил вопрос не много по другому, через 7zip, сперва тоже ошибку выдало про неверную кодировку, потом заработало

Нужно поменять кодировку на utf-8 в list.txt

@echo off
set now=%TIME:~0,-3%
set now=%now::=.%
set now=%now: =0%
set now=%DATE:~-4%.%DATE:~3,2%.%DATE:~0,2%_%now%
7z.exe a -tzip -ssw -mx7 -r0 -x!*.mdx C:\test\%now%.zip @list.txt

Последний раз редактировалось krambrige, 15-12-2018 в 13:13.


Отправлено: 12:12, 15-12-2018 | #7


Ветеран


Contributor


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

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


Подозреваю, список файлов в текстовом файле с кодировкой 1251
Код: Выделить весь код
@Echo Off

Chcp 1251 >nul
Set "Spisok=C:\test\list.txt"
Set "Ext=txt"
Set "BoxIn=C:\test"
Set "BoxOut=C:\123"

For /f "usebackq delims=" %%i in ("%Spisok%") Do Copy "%BoxIn%\%%~ni.%Ext%" "%BoxOut%\" >nul
Неважно, как указаны имена файлов (с путями или без), по условию:
Цитата krambrige:
В папке C:\test лежит куча файлов с названиями из list.txt, эти файлы имеют расширение txt. »

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


Последний раз редактировалось megaloman, 15-12-2018 в 12:24.


Отправлено: 12:13, 15-12-2018 | #8


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


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

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


Я точно не скажу, много информации по поводу кодировок пересмотрел, все в голове перемешалось.
Но в батнике пользователя Iska я менял кодировку на 1251, utf 8, OEM 866 и все равно не выполнялся батник.

Отправлено: 12:18, 15-12-2018 | #9


Ветеран


Contributor


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

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


krambrige,
Цитата krambrige:
Но в батнике пользователя Iska я менял кодировку на 1251, utf 8, OEM 866 и все равно не выполнялся батник »
Надо было не кодировку батника менять, а кодировку списка файлов.
Мой батник, если в путях, указанных в батнике, имеются русские символы, надо сохранить в 1251 кодировке. Он обрабатывает список файлов в 1251 кодировке. (проверьте, notepad.exe C:\test\list.txt правильно отображает имена файлов?)

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


Последний раз редактировалось megaloman, 15-12-2018 в 12:34.


Отправлено: 12:29, 15-12-2018 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Копирование названия файлов из списка по символу в отдельный файл f1rstonlyone@vk Скриптовые языки администрирования Windows 2 07-06-2017 22:08
CMD/BAT - Копирование файла и переименование согласно списка из exel TPOJIb_55 Скриптовые языки администрирования Windows 4 01-06-2016 09:28
VBS/WSH/JS - Копирование файлов по сети на PC из списка. HattabbI4 Скриптовые языки администрирования Windows 8 28-03-2013 14:34
CMD/BAT - [решено] Копирование файлов из списка dima05605 Скриптовые языки администрирования Windows 2 05-09-2012 17:48
CMD/BAT - [решено] Копирование файлов из экселевского списка Zayaca Скриптовые языки администрирования Windows 2 12-08-2012 10:03




 
Переход