Создать простой батник копирования с заменой файла

  • Автор темы Автор темы HotBeer
  • Дата начала Дата начала
  • Теги Теги
    bat

HotBeer

Команда форума
Ассоциация VN/VIP
Модератор
Сообщения
446
Реакции
195
Создать батник который будет один файлик копировать с сетевого диска в указанную папку путём замены старого файла, собственно всё.
Источник - файл расположенный по пути O:\ЖУРНАЛ ВКС 2024г..xls
Назначение - C:\Мои документы\backup\
 
Создать батник который будет один файлик копировать с сетевого диска в указанную папку путём замены старого файла, собственно всё.
Источник - файл расположенный по пути O:\ЖУРНАЛ ВКС 2024г..xls
Назначение - C:\Мои документы\backup\
Для создания пакетного файла (.bat), который будет копировать файл с сетевого диска в указанную папку, вам нужно открыть текстовый редактор (например, Блокнот) и ввести следующий код:

CMD/BATCH:
@echo off
set source=O:\ЖУРНАЛ ВКС 2024г..xls
set destination=C:\Мои документы\backup\

copy /Y %source% %destination%

Пояснение:
  • @echo off: Эта команда отключает вывод команд в консоль.
  • set source=O:\ЖУРНАЛ ВКС 2024г..xls: Здесь вы указываете путь к исходному файлу.
  • set destination=C:\Мои документы\backup\: Здесь вы указываете путь к папке, куда нужно скопировать файл.
  • copy /Y %source% %destination%: Эта команда копирует файл с заменой старого файла (если он существует) из исходного пути в папку назначения.

Сохраните этот текст в файле с расширением .bat (например, copy_file.bat). Запустите этот файл, чтобы скопировать файл согласно вашим требованиям. Пожалуйста, убедитесь, что у вас есть права доступа к обоим папкам и файлам.
 
А можно ли его запустить по расписанию в WINDOWS не используя планировщик задач windows
 
А можно ли его запустить по расписанию в WINDOWS не используя планировщик задач windows
Да, можно запустить пакетный файл (.bat) по расписанию в Windows, не используя встроенный Планировщик задач. Для этого можно воспользоваться командой at в командной строке.

Вот пример того, как можно запустить пакетный файл по расписанию с помощью команды at:

1. Откройте командную строку (cmd).
2. Введите следующую команду, чтобы запланировать выполнение пакетного файла в определенное время:

CMD/BATCH:
at <время> /every:<день_недели> "путь_к_вашему_файлу.bat"

Пример:

CMD/BATCH:
at 10:00 /every:M,T,W,Th,F "C:\путь_к_вашему_файлу\copy_file.bat"

Это запланирует выполнение вашего пакетного файла copy_file.bat каждый рабочий день в 10:00.

Пожалуйста, обратите внимание, что команда at может потребовать административные права для выполнения. Убедитесь, что у вас есть соответствующие разрешения на запуск задач по расписанию.
 
Батник не срабатывает, я полагаю потому что в названии файла источника есть пробелы?
 
Батник не срабатывает, я полагаю потому что в названии файла источника есть пробелы?
Да, возможно пробелы в названии файла источника могут вызывать проблемы при выполнении пакетного файла. Чтобы исправить это, вам нужно заключить путь к файлу с пробелами в кавычки в вашем пакетном файле.

Вот как можно изменить ваш пакетный файл для корректной обработки пути с пробелами:

CMD/BATCH:
@echo off
set "source=O:\ЖУРНАЛ ВКС 2024г..xls"
set "destination=C:\Мои документы\backup\"

copy /Y "%source%" "%destination%"

Добавление кавычек вокруг переменных %source% и %destination% позволяет обрабатывать пути с пробелами правильно. Попробуйте изменить ваш пакетный файл с этими изменениями и запустить его снова.
 
Всё равно не работает
Попробуйте использовать следующий вариант с использованием кавычек вокруг пути к исходному файлу и папке назначения:

CMD/BATCH:
@echo off
set "source=O:\ЖУРНАЛ ВКС 2024г..xls"
set "destination=C:\Мои документы\backup\"

xcopy "%source%" "%destination%" /Y

В этом варианте я заменил команду copy на xcopy, которая может лучше обрабатывать пути с пробелами. Попробуйте сохранить этот скрипт и запустить его. Если это не поможет, пожалуйста, уточните, какие ошибки вы получаете при попытке выполнения скрипта.
 
Тоже не работает
Попробуйте использовать следующий вариант с использованием кавычек вокруг пути к исходному файлу и папке назначения, а также добавлением параметра /C для команды copy:

CMD/BATCH:
@echo off
set "source=O:\ЖУРНАЛ ВКС 2024г..xls"
set "destination=C:\Мои документы\backup\"

copy /Y /C "%source%" "%destination%"

Добавление параметра /C к команде copy может помочь в обработке файлов с расширением .xls. Попробуйте сохранить этот скрипт и запустить его. Если проблема сохранится, пожалуйста, уточните, какие ошибки вы получаете при попытке выполнения скрипта.
 
Никаких ошибок нет, быстро открывается окно командной строки и сразу же пропадает
 
Никаких ошибок нет, быстро открывается окно командной строки и сразу же пропадает
Попробуйте добавить команду pause в конце вашего пакетного файла. Это позволит вам увидеть вывод командной строки и любые сообщения об ошибках после выполнения скрипта.

Вот обновленный вариант пакетного файла с командой pause:

CMD/BATCH:
@echo off
set "source=O:\ЖУРНАЛ ВКС 2024г..xls"
set "destination=C:\Мои документы\backup\"

copy /Y /C "%source%" "%destination%"
pause

Сохраните этот скрипт и запустите его. После копирования файла окно командной строки останется открытым, пока вы не нажмете любую клавишу. Это позволит вам увидеть любые сообщения об ошибках, которые могут возникнуть в процессе выполнения скрипта.
 
Ошибка в синтаксисе команды
Попробуйте использовать следующий вариант с командой pause на отдельной строке после команды копирования:

CMD/BATCH:
@echo off
set "source=O:\ЖУРНАЛ ВКС 2024г..xls"
set "destination=C:\Мои документы\backup\"

copy /Y /C "%source%" "%destination%"
pause

Этот вариант помещает команду pause на отдельную строку после команды копирования. Сохраните скрипт с этими изменениями и запустите его. Теперь после копирования файла окно командной строки должно оставаться открытым, позволяя вам увидеть любые сообщения об ошибках.
 
А если кавычки переставить куда нужно, т.е. после знака "="?
Да, вы правы. Попробуйте поместить кавычки после знака "=" при определении переменных source и destination:

CMD/BATCH:
@echo off
set source="O:\ЖУРНАЛ ВКС 2024г..xls"
set destination="C:\Мои документы\backup\"

copy /Y /C %source% %destination%
pause

Сохраните этот скрипт и запустите его. Теперь после копирования файла окно командной строки должно оставаться открытым, позволяя вам увидеть любые сообщения об ошибках.
 
Ничего не изменилось
Пожалуйста, попробуйте следующий вариант скрипта, используя кавычки как в предыдущих вариантах, но добавив параметр /V для вывода подробной информации о процессе копирования:

CMD/BATCH:
@echo off
set "source=O:\ЖУРНАЛ ВКС 2024г..xls"
set "destination=C:\Мои документы\backup\"

copy /Y /V "%source%" "%destination%"
pause

Сохраните этот скрипт и запустите его. После копирования файла окно командной строки должно оставаться открытым, позволяя вам увидеть подробную информацию о процессе копирования. Пожалуйста, сообщите, если по-прежнему возникают проблемы.
 
Если оставить такой путь
O:\ЖУРНАЛ ВКС 2024г..xls"
то не удаётся найти указанный файл
если поставить любой другой путь, например
"O:\1.txt"
то батник работает
 
Назад
Сверху Снизу