如何复制文件夹,子文件夹和&项目,从脚本位置?

时间:2018-05-21 09:12:11

标签: powershell powershell-v2.0

我尝试创建一个脚本,将带有子文件夹的文件夹从脚本的源目录复制到C:\Tools

文件夹创建正常,但没有文件被复制过来,我没有收到任何错误消息。

我做错了什么?

下面的代码段(PowerShell v2.0):

$from = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent
$to =  C:\Tools\
New-Item -ItemType Directory -Path C:\Tools
New-Item -Force $to
Copy-Item "$from\Tools" $to -Recurse

2 个答案:

答案 0 :(得分:0)

这对我有用:

this.$store.dispatch('reload-charts', { url: 'http://some.host/path/to/url' })
  .then(() => {
    // other stuff
  })

这是假设一个像这样的文件夹结构:

New-Item -ItemType directory -Path "C:\Tools" -Force | Out-Null

Copy-Item -Path "$(Split-Path -Path $MyInvocation.MyCommand.Definition -Parent)\Tools\*" `
          -Destination "C:\Tools\" `
          -Recurse 

上面的代码段将创建以下内容:

Root
  |
  |- CopyScript.ps1
  |- Tools
       |- File1.txt
       |- File2.txt
       ...
       |- SubFolder1
       |- Subfolder2
       ...

答案 1 :(得分:0)

对于Copy-Item,文档中的示例总是值得一看 - 示例3与您想要的相同:

  

示例3:将目录的内容复制到另一个目录中   创建目标目录(如果它不存在)

     

PS C:\> Copy-Item C:\Logfiles -Destination C:\Drawings\Logs -Recurse

     

此命令将C:\ Logfiles目录的内容复制到   C:\ Drawingings \ Logs目录。如果它,它会创建\ Logs子目录   尚不存在。

由于Copy-Item会为您创建目标文件夹,因此您不需要先使用New-Item

$from = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent
$to =  "C:\Tools"

Copy-Item "$from\Tools" -Destination $to -Recurse