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は、スクリプト/コマンドライン操作もサポートしています。
WebDAVを介してファイルをアップロードするためのサンプルWinSCPスクリプト:
open http://[email protected]/
put file.txt /path/
close
スクリプトをファイルに保存します(例:script.txt
)そして次のように実行します:
winscp.com /script=script.txt
すべてを1行にまとめることもできます。
winscp.com /command "open http://[email protected]/" "put file.txt /path/" "close"
WinSCPを使用したスクリプトの概要については、以下を参照してください。
https://winscp.net/eng/docs/guide_automation
WinSCP GUIは スクリプトテンプレートを生成する あなたのためにできます。
(私はWinSCPの作者です)
なぜ、なぜ、(同じサーバー上にある場合)ローカルフォルダーからローカルフォルダーにコピーしないのですか?
copy c:\path\myfile.txt c:\path\to\www-root\subdir\destination\
ファイルのコピー後にIIS/Apache(またはその他)を再起動する必要がある場合がありますが、ほとんどの場合、再起動する必要はありません。
DavCopyは、ファイルをWebDAVにプッシュするためのコマンドラインツールです 。バッチジョブのコマンドライン認証をサポートしているため、ログインしていないときに実行できます。
ツールを実行するためにwebclientサービスは必要ありません。
単純な構文も使用します。 robocopyに似ています。
pushd
とpopd
を使用してみてください。これは、ドライブのマウントを自動化するのに役立ちます。可能であれば、PowerShellを使用することもできます。