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

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

Переводчик Google

HotBeer

Команда форума
Ассоциация VN/VIP
Модератор
Сообщения
472
Реакции
207
Создать батник который будет один файлик копировать с сетевого диска в указанную папку путём замены старого файла, собственно всё.
Источник - файл расположенный по пути 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"
то батник работает
 
Назад
Сверху Снизу