копирование BAT
на диске C: есть папка C:\LOGO\555
в папке 555 есть 3 файла 1.cfg 2.so 3.BIN как скопировать эти 3 файла в другую папку и под папки в ней с заменой этих файлов если существуют C:\LOGO\new\launch\968000000000 |
да это папка 968000000000
в ней 100 разных папок в эти папки мне и надо скопировать эти 3 файла если они там есть то с заменой |
Код:
@Echo Off |
пишет неправильно указан диск в чем проблема
|
работает разобрался изменил букву названия диска С: с большой на маленькую с:
но осталась одна проблема эти 3 файла он копирует в папку 968000000000 а мне надо скопировать эти 3 файла с заменой в папки их порядка 100 штук которые находяться в папке 968000000000 @Echo Off Set "InBox=с:\LOGO\555" Set "OutBox=с:\LOGO\new\launch\968000000000" Pushd %InBox% Xcopy "1.cfg" "%OutBox%\" /Y /D /R /H /C /K >nul Xcopy "2.so" "%OutBox%\" /Y /D /R /H /C /K >nul Xcopy "3.bin" "%OutBox%\" /Y /D /R /H /C /K >nul FOR /F "usebackq delims=" %%d IN (`Dir /B /A:D 2^>nul`) DO ( Xcopy "%%d" "%OutBox%\%%d\" /Y /D /E /R /H /C /K >nul ) popd GoTo :Eof |
55kadi, я, похоже, неверно понял задачу. Мой скрипт из папки 555 берёт 3 файла и все подпапки в ней и копирует в папку 968000. А что нужно Вам? Взять из папки 555 три файла и скопировать их во все подпапки папки 968000? А если в этих папках есть тоже подпапки более глубокого уровня, то и туда копировать тоже?
О букве "c" в имени диска- неважно, большая она или маленькая, главное, чтобы она была латинская а не русская, вполне возможно, что это я виноват- у меня при отладке была другая буква диска, не C. |
Взять из папки 555 три файла и скопировать их во все подпапки папки 968000
|
Взять из папки 555 три файла и скопировать их во все подпапки папки 968000
Код:
@Echo Off Взять из папки 555 три файла и скопировать их во все подпапки папки 968000, если они более свежие
Код:
@Echo Off |
Вложений: 1
не работает
|
Цитата:
Вот отладочный вариант, в папке C:\LOGO\555 образуется LOG-файл с именем батника, не сочтите за труд довести его содержимое до меня
Код:
@Echo Off Из вашего скриншота следует, что: или нет подпапок в папке C:\LOGO\new\launch\968000000000 или нет файлов "1.cfg" "2.so" "3.bin" в папке C:\LOGO\555 |
Вложений: 1
LOG-файл не создаеться
|
megaloman,
надо поправить Цитата:
|
Вложений: 1
alpap, Копирую к себе скрипт, запускаю, работает. Я не вижу, что надо поправлять. Попробуйте - получится! Мой лог предоставляю.
|
Цитата:
вероятно ТС тоже запускает извне. |
alpap, Спасибо. Запомню. Странно, что по разному отрабатывает %~0 для запуска из Far и с рабочего стола.
55kadi, Итак, в отладочном варианте вместо %~0 надо писать %~nx0 В отладочном варианте скрипта поправил. Проделайте, пожалуйста. |
Цитата:
|
Iska, При запуске батника из папки из фара %~0 выдаёт имя.расширение, а с рабочего стола или из проводника Путь\имя.расширение
|
Вложений: 1
log
|
Цитата:
Скрытый текст
|
Вложений: 1
Iska, У меня, конечно, FAR старый ...
Если в командном окне перейти в папку, где хранится батник, то %~0 тоже выдаст имя.расширение без пути |
Цитата:
|
Вложений: 1
Iska, Вот скриншот
|
Iska, Скачал Far30b4774.x86.20160902, действительно там %~0 выдаёт путь\имя.расширение, не так, как если бы батник выполнялся в командном окне. Я привык к тому, что из под фара и в командном окне батники работают одинаково. Отвыкать? :cry:
|
Цитата:
Под имеющейся 1.70 beta 5 всегда показывает полный путь. Под чуть более ранним 1.70 beta 4 — полный, либо короткий, зависит от того, вызываем мы его просто по имени (например, Enter на имени пакетного файла), или с полным путём (например, Ctrl-F, Enter). Кстати, аналогичное поведение будет и при вызове пакетного файла из-под обычной командной строки. Полагаю, где-то в промежутке между beta 4 и beta 5 перекроили Executor, и он стал всегда пытаться использовать полный путь. Слева — beta 4, справа — beta 5: Скрытый текст
Деталей в changelog не нашёл. Цитата:
Скрытый текст
А вот с beta 5 поведение Far Manager'а при запуске стало отличаться от командной строки. |
Цитата:
|
Цитата:
СПАСИБО а можно усложнить задание в папке 968000000000 есть подпапки например 1111 2222 3333 4444 5555 в некоторых подпапках есть свои подпапки 0000 1234...... можно сделать так стоб эти 3 фаила копировались в подпапки 1111 2222 5555 ..........а если в подпапках есть свои подпапки то только в подпапки подпапок 0000 1234 5432 ..................... 968000000000\ 1111 2222 3333\ 0000 1234 5555 4444\0000 5432 заранее спасибо |
55kadi,
а можно усложнить задание
Код:
@Echo Off |
Цитата:
в папке 968000000000\есть подпапки 100 штук с разными именами например 123\ 454\.......в некоторых подпапках 123\454.... ест свои подпапки например 006\001...... и мне надо стоб эти 3 фаила копировались в подпапки 123\454......если в них нет подпапок а если в них есть еще подпапки 006\001 то вних имена подпапок сейчас как пример реально другие названия |
Вложений: 1
C:\LOGO\new\launch\968000000000\
1****\ 2****\ 3****\ 4** \5****\ 7****\ 5****\ ............ 1***,2****...... это папки и этих папок около 100 штук и эти 3 фаила надо копироват с заменой в эти папки а если в этих папках есть подпапки то в них 5****,7**** |
Вложений: 1
на прикрепленом фаиле стрелками я показал куда копировать
только имена папок их около 100 у меня другие 5**********,4**** ........... ето пример |
55kadi, Вы нарисовали пример дерева папок и указали, в какие папки надо копировать, а в какие нет.
Код:
@Echo Off |
спасибо работает
|
Время: 03:09. |
Время: 03:09.
© OSzone.net 2001-