3

我是一名 Powershell 新手,并且正在运行我认为是相当简单的脚本来将文件从网络复制到我的本地计算机。

$htmPath = "\\ServerPath\foo\WebHelp\"
$dstPath = "C:\LocalPath\foo\WebHelp\"
Copy-Item $htmPath $dstPath -recurse -force

但是,我所有的数据都在C:\LocalPath\foo\WebHelp\Webhelp\;看来我的副本正在创建WebHelp目录的新实例,而不是复制内容。这正常吗?为什么会发生?我如何需要修改我的脚本以仅复制文件夹的内容,而不是文件夹名称?

例如,如果我只想files\WebHelp\files. \\serverpath\foo\WebHelp\files我在添加或删除结尾\和使用copy而不是copy-item. 在复制期间消除父文件夹名称附加到路径的正确语法是什么?

4

2 回答 2

1

第一:switch-WhatIf可以显示您的信息以用于测试有关复制的目的。

第二:复制目录时不需要为每个文件做一个文件。如果你想每个文件去一个文件,你可以$htmPath\*用来获取子项目。或者Get-ChildItem

您可以将您的 dstPath 设置为"C:\LocalPath\foo\"

于 2013-06-18T12:50:01.617 回答
0

从一个文件夹复制到另一个文件夹时,您可以使用多种选项来获得不同的结果。

$htmPath = "\\ServerPath\foo\WebHelp\"
$dstPath = "C:\LocalPath\foo\WebHelp\"
Copy-Item $htmPath $dstPath -recurse -force

您的代码明确选择 htm 路径文件夹及其文件/子文件夹以复制到目标路径。

Copy-Item $htmPath\* $dstPath -recurse -force

\*我相信,将您的从路径更改为结束将得到您想要的将 htm 路径文件和子文件夹复制到目标路径的结果。

如果您只想要文件而不是子文件夹,请删除-recurse.

在此处阅读有关从一个位置复制到另一个位置的更多信息。在此处复制项目命令信息。

于 2014-04-10T17:23:07.377 回答