Войти

Показать полную графическую версию : Автоматическая замена файлов


KooDI
30-08-2013, 12:25
Доброго времени суток всем.
Есть папка в которой есть файлы и каталоги с ними
c:\File\
Нужно все файлы и подкаталоги скопировать с заменой в
d:\File\1
d:\File\2
d:\File\3
d:\File\4
Если можно, то на таком языке что б можно было повесить на кнопку в тотале

Foreigner
30-08-2013, 16:25
KooDI,

@echo off

for %%i in ( d:\file\1 d:\file\2 d:\file\3 d:\file\4 ) do xcopy /y /e c:\file\* "%%i"

KooDI
30-08-2013, 18:07
Спасибо Foreigner все прекрасно работает за исключением того если в одном из пути есть русские символы то батник не работает, можете как-то подправить

Iska
30-08-2013, 18:17
KooDI, в какой кодировке сохраняете пакетный файл?

KooDI
30-08-2013, 18:34
Iska,
Блокнот Notepad++
В меню кодировка пишет UTF-8 без (BOM)
В строке состояния ANSI as UTF-8

Foreigner
30-08-2013, 19:13
KooDI, Сохранеяй в cp866 (OEM), либо в cp1251, но тогда добавь команду 'chcp 1251'

@echo off
1>nul chcp 1251

...

KooDI
30-08-2013, 19:30
Foreigner, не помогло
Пробовал все кодировки доступные в меню Кириллица, ни одна не помогла
Может быть из за того что в слове присутствует украинская буква "і"

Foreigner
30-08-2013, 19:34
KooDI, Выложи батник

KooDI
30-08-2013, 19:48
Foreigner, оказалось что кириллица здесь не причем, тот же результат и в латинице, в случае если в имени конечной папки присутствует пробел

Foreigner
30-08-2013, 19:52
KooDI, Если папка с пробелом, то заключи в кавычки:

@echo off

for %%i in ( "d:\file\1" "d:\file\2" "d:\file\3" "d:\file\4" ) do xcopy /y /e "c:\file\*" "%%~i"


ЗЫ. Сорри, просто считал это очевидным

KooDI
30-08-2013, 20:19
Foreigner,
Какие то силы свыше не хотят, что б у меня было все как у людей)
С латиницей все супер, с кириллицей все очень плохо, при запуске батника он создает рядом с назначающейся папкой папку у которой название состоит с всяких кракозяб, при этом если стой попки запустить программу то ее интерфейс выгладить так как будто он сквозь мясорубку прошел

Foreigner
30-08-2013, 20:29
Выложи текстовый файл, в той кодировке, в которой сохраняешь батник и с проблемными названиями.

KooDI
30-08-2013, 21:02
В последний раз проверил еще и cp1251, все заработало, а вот в cp866 (OEM) не работало.
Не знаю почему но при запуске батника сначала 1 секунду весит и там всякие в консоли крякозябли прилагаю в низу, а потом уже бежит список с путями, но главное что все работает.
Спасибо вам огромное за потраченное время и силы, всего вам наилучшего.

Foreigner
30-08-2013, 21:59
KooDI,

Я вообще не смог перекодировать в читаемый вид, хоть файл в utf-8 :(
Cоздай изначально в блокноте в виндовой кодировке cp1251 (ANSI). В юникоде батники не работают.

KooDI
30-08-2013, 23:13
Foreigner,
Пробовал все равно так само, но главное что все действует.
Спасибо вам за все.

Anonymоus
06-09-2013, 20:51
В юникоде батники не работают. »
Работают, главное без BOM сохранять. У меня забавы ради даже небольшой cgi-вебсервер на ponyasha.tk поднят, где всё генерируется с помощью батников, в юникоде, естественно.

Foreigner
06-09-2013, 21:11
Anonymоus, В каком редакторе?

Anonymоus
06-09-2013, 21:20
Foreigner, в любом, который это позволяет. AkelPad, Notepad++, etc. Если под рукой ничего, кроме стандартного Notepad нету, а в UTF-8 сохранить очень хочется, то первую строку оставляем пустой (или вписываем " 2>nul" для подавления ошибки), а "@Echo Off" переносим на другую строку.
Но вопрос о редакторе можно автоматически снять, так как согласно
Блокнот Notepad++ »
у топикстартера как раз один из тех редакторов, в которых можно отключить Byte Order Mark при сохранении.




© OSzone.net 2001-2012