我可以通过脚本或命令行将文件复制到网络位置吗?

我可以通过脚本或命令行将文件复制到网络位置吗?

问题描述:

在Windows XP中,是否可以通过命令行,批处理文件或更好的PowerShell脚本将文件复制到网络位置?我可以通过脚本或命令行将文件复制到网络位置吗?

这条研究之路让我感到失望的是试图将文件发布到用户机器的WSS 3.0文档库中。我无法将驱动器映射到有问题的库,因为WSS站点只能通过非80或443端口上的NTLM进行身份验证。我想我可以交替使用WSS Web服务将文件推送出去,但是我我现在真的很好奇这个问题的答案。

+0

也是在这里看到类似的问题:http://serverfault.com/q/43116/84502 – Synox 2012-04-16 15:46:36

从我所看到的,似乎是不可能直接访问/命令行操作网上邻居,无论是在PowerShell中或纯醇”命令提示符。

@slipsec(#13899): 感谢您的建议,但PowerShell不支持在目标路径的任何比net use命令更确实的端口号。

因此,在我的特殊情况下,我可以做的最好的事情就是咬紧牙关,购买类似WebDrive的驱动器,以便通过非标准端口上的WebDAV进行驱动器映射,或者执行一些不同的配置(例如,不同的IP地址和主机头)在SharePoint中通过标准端口上的NTLM公开该网站。

是的,你可以。我建议使用像robocopy这样的工具。

您可以使用'net'命令进行身份验证,然后复制这些文件。

copy src \\dest-machine\shared-library-name\dest 

我不是真的肯定究竟如何,如果它需要处理身份验证。

如果这是你需要脚本的东西,你应该考虑NAnt

它主要用于构建脚本,但功能非常强大,并且相当容易上手。

还有NAntContribnant ftp task它应该帮助你。

我可能是错的,但我认为Nick的robocopy解决方案或Nathan的复制命令解决方案都不会起作用。的Robocopy似乎想映射驱动器,我不能这样做,因为它没有在端口80或443上运行,而Windows无法处理,其中包括在UNC-style名称端口的路径:

copy src \\dest-machine:45000\shared-library-name\dest 

我也没有看到NAnt的任务可以处理这种情况。

我也知道有一些工具可以让我映射WebDAV驱动器。我更想知道是否有某种方式可以利用已经设置的网络位置而不使用GUI。

Powershell使用提供者的抽象来为数据存储提供通用接口。这些似乎坚持与普通名词“项目”,所以你可以得到一个完整的列表man *item*。如果您知道另一种复制方式并以其他方式处理来自商店的数据,那么您可以使用它,但使用cmdlet可提供更好的“一次学习,常用”方法。在你的情况下,你可以:

Copy-Item test.txt -Destination \\dest-machine\share 

复制项目也支持-Credential参数,如果你需要它。

+1

复制-项目有-Credential参数,但没有一个标准的供应商(即文件系统)的支持,所以这不是真的可用。 – chills42 2011-03-23 17:09:26

使用批处理文件,你既可以登录到资源和复制文件:

批处理文件将包含以下内容:

net use \\{dest-machine}\{destfolder} {password} /user:{username} 
copy {file} \\{dest-machine}\{destfolder} 

例如

net use \\Development\myfolder mypassword /user:Administrator 
copy newfile.c \\development\myfolder 

“网络位置”实际上没有API,只是一堆快捷方式,如果我正确记得,SharePoint共享使用外壳扩展。

所有这一切都说:从PowerShell访问Sharepoint作为文件系统需要扩展,SharePoint Provider

如果您所指的是windows box,请使用xcopy。有xcopy可用,这是相当标准的。

​​