#!c:/perl/bin/perl.exe # Command line WebDAV client use strict; use warnings; use Getopt::Long; use HTTP::DAV; my ( $source, $destination, $username, $password ); GetOptions ('source=s' => \$source, 'destination=s' => \$destination, 'username=s' => \$username, 'password=s' => \$password, ); unless ( $source && $destination && $username && $password ) { print "Error: Missing parameters\n\n"; get_help(); exit(1); } my $dav = new HTTP::DAV; $dav->credentials( -user =>$username, -pass =>$password, -url =>$destination, ); $dav->open( -url=>$destination ) or die("Couldn't open $destination: " .$dav->message . "\n"); if ( $dav->put( -local => "$source", -url => $destination ) ) { print "\nSuccessfully uploaded $source to $destination\n"; } else { print "Put failed: " . $dav->message . "\n"; } sub get_help { print <<"HEREDOC"; Perl WebDAV client. Usage: webdav.exe --source [path to source file(s), accepts regex] --destination [url to WebDAV server] --username [your username, prefix with domain. e.g. domain\username] --password [your password] HEREDOC }