Мне нужно скопировать файл с сервера Windows 2003 в папку WebDAV (на том же сервере, если это важно). Эта операция будет выполняться с помощью пакетного скрипта, выполняемого с помощью запланированных задач. Я включил службу WebClient на сервере.
Пока я решил, что могу сделать это так:
net use x: http://host/path
copy c:\path\myfile.txt x:
net use x: /delete
1) Есть ли более простой способ, чем создание временного подключенного диска? Будет ли он работать через командный файл, когда ни один пользователь не вошел в систему?
2) Что мне нужно знать о включении службы WebClient на моем сервере? Ранее он был отключен, что, как я полагаю, используется по умолчанию.
Свободно WinSCP (для Windows) поддерживает WebDAV (и WebDAVS). WinSCP также поддерживает операции сценариев / командной строки.
Пример сценария WinSCP для загрузки файла через WebDAV:
open http://user@webdav.example.com/
put file.txt /path/
close
Сохраните сценарий в файл (например, script.txt
) и запустить как:
winscp.com /script=script.txt
Вы также можете поместить все в одну строку:
winscp.com /command "open http://user@webdav.example.com/" "put file.txt /path/" "close"
Для введения в создание сценариев с WinSCP см.:
https://winscp.net/eng/docs/guide_automation
Графический интерфейс WinSCP может создать шаблон сценария для тебя.
(Я автор WinSCP)
DavCopy - это инструмент командной строки для отправки файлов в WebDAV.. Он поддерживает аутентификацию в командной строке для пакетных заданий, поэтому его можно запускать, когда вы не вошли в систему.
Служба веб-клиента не требуется для запуска инструмента.
Он также использует простой синтаксис. похож на robocopy.
Почему, ну почему (если он на том же сервере) вы не копируете из локальной папки в локальную папку?
copy c:\path\myfile.txt c:\path\to\www-root\subdir\destination\
Возможно, вам потребуется перезапустить IIS / Apache (или что-то еще) после копирования файла, но, скорее всего, нет.
Вы можете попробовать использовать pushd
и popd
, которые помогают автоматизировать монтаж привода. Вы также можете попробовать использовать PowerShell, если возможно.