提前道歉,因为我重新定义了这个问题的以下术语而引起的混淆;
我正在尝试使用Windows 7 Powershell 3.0 Copy-Item
函数将一个目录的六个子目录复制到另一个目录中;相当简单的东西。注意,这些目录驻留在网络上,其UNC路径已映射到Windows环境中的驱动器,如;
H:\ = \\servername\path
在下面的示例中,顶级目录本身是复制的,而不仅仅是其内容(恰好是六个子目录及其内容)
$from = "H:\temp\toplvl_dir - backup"
$to = "H:\temp\newdir"
Copy-Item $from -Destination $to -Recurse
# Creates:
# H:\temp\newdir\toplvl_dir - backup
这是不可取的。
使用“*”postfix $from = "H:\temp\toplvl_dir\* "
借用David-Tchepak solution的格式取得了进展,部分原因在于它只复制了内容......
$from = "H:\temp\toplvl_dir - backup\*"
$to = "H:\temp\newdir"
Copy-Item $from -Destination $to -Recurse
# Creates:
# H:\temp\newdir\{copied contents of .\toplvl_dir - backup\NN_subdir\}
...但不幸的是,这些内容来自以下所需级别的一个级别:即子目录 .\toplvl_dir - backup\NN_subdir\
的内容,而不是内容目录。\ toplvl_dir ...
上面示例中的$from
目录实际上包含六个子目录"\01_subdir", "\02_subdir"...."\06_subdir"
,每个子目录包含一个相同的“树”,其中包含一个本身包含大量文件的独立子目录。完整路径看起来像这样;
e.g. H:\temp\toplvl_dir - backup\NN_subdir\lone_subdirectory\{lots of files}
Copy-Item
似乎试图复制 sub_subdirectory ,即lone_subdirectory
,报告每个NN_subdir
的错误; “无法将容器复制到现有的叶子项目”。到目前为止,我理解NN_subdir
的内容超出第一个01_subdir
的每个副本迭代,都是lone_subdirectory
的重复,这将导致目录名称冲突,但我不是了解为什么应用了语法,Copy-Item
正在尝试复制 sub_subdirectories 而不是子目录 .\toplvl_dir - backup\NN_subdir\
如何对Copy-Item
进行简单调用,将顶级目录 .\toplvl_dir - backup\*
的内容复制到.\newdir
,即六个子目录和他们的内容!?
如果我希望能够通过一次拨打Copy-Item
来完成此操作,请随意说我是不合理的吗?
# Desired Result using a one-line call to Copy-Item:
H:\temp\newdir\01_subdir\lone_subdirectory\{lots of files}
H:\temp\newdir\02_subdir\lone_subdirectory\{lots of files}
H:\temp\newdir\03_subdir\lone_subdirectory\{lots of files}
H:\temp\newdir\04_subdir\lone_subdirectory\{lots of files}
H:\temp\newdir\05_subdir\lone_subdirectory\{lots of files}
H:\temp\newdir\06_subdir\lone_subdirectory\{lots of files}
: - S
答案 0 :(得分:2)
只是为了澄清,如果我有这样的文件夹结构:
C:\src\01\lone\a.txt
C:\src\02\lone\b.txt
C:\dest
您正在寻找一个单行的Copy-Item命令来生成一个看起来像这样的目录结构吗?
C:\dest\01\lone\a.txt
C:\dest\02\lone\b.txt
这是对的吗?如果是这样,这个命令对我有用(尽管是Win7,PS版本5):
Copy-Item -Path 'C:\src\*' -Destination 'C:\dest' -Recurse