Powershell 需要递归地将单个文件复制到所有子文件夹

Powershell 需要递归地将单个文件复制到所有子文件夹,powershell,copy-item,Powershell,Copy Item,请有人帮我创建一个powershell或CMD脚本,尽可能简单(1行?),它将执行以下操作 -获取文件(c:\test.txt) -复制到给定文件夹中的所有子文件夹,包括多个级别 例如,c:\test1\1\2\3\和c:\test2\6\7\8\ -如果该文件已经存在,则不覆盖该文件 -不更改任何现有文件。如果原始txt文件不存在,只需添加它即可 我试过在网上找到的一些脚本,对它们进行了修改,但都没有成功。它要么覆盖现有文件,要么不深入多个级别,要么跳过顶部/底部级别之间的所有文件夹,要么抛出

请有人帮我创建一个powershell或CMD脚本,尽可能简单(1行?),它将执行以下操作

-获取文件(c:\test.txt) -复制到给定文件夹中的所有子文件夹,包括多个级别 例如,c:\test1\1\2\3\和c:\test2\6\7\8\ -如果该文件已经存在,则不覆盖该文件 -不更改任何现有文件。如果原始txt文件不存在,只需添加它即可

我试过在网上找到的一些脚本,对它们进行了修改,但都没有成功。它要么覆盖现有文件,要么不深入多个级别,要么跳过顶部/底部级别之间的所有文件夹,要么抛出错误。我放弃了

谢谢
马特

不是一句台词,但你看:

$rootFolder = 'PATH OF FOLDER CONTAINING ALL THE SUBFOLDERS'
$fileToCopy = 'c:\test.txt'
$fileName   = [System.IO.Path]::GetFileName($fileToCopy)
Get-ChildItem -Path $rootFolder -Recurse -Directory | ForEach-Object {
    if (!(Test-Path -Path (Join-Path -Path $_.FullName -ChildPath $fileName) -PathType Leaf)) {
        Copy-Item -Path $fileToCopy -Destination $_.FullName
    }
}

不是一个班轮,但你来了:

$rootFolder = 'PATH OF FOLDER CONTAINING ALL THE SUBFOLDERS'
$fileToCopy = 'c:\test.txt'
$fileName   = [System.IO.Path]::GetFileName($fileToCopy)
Get-ChildItem -Path $rootFolder -Recurse -Directory | ForEach-Object {
    if (!(Test-Path -Path (Join-Path -Path $_.FullName -ChildPath $fileName) -PathType Leaf)) {
        Copy-Item -Path $fileToCopy -Destination $_.FullName
    }
}

像这样的怎么样

$folders = Get-ChildItem -Recurse -Path C:\temp\1 -Directory
$file = "c:\temp\test.txt"

foreach($folder in $folders){
    $checkFile = $folder.FullName + "\test.txt"
    $testForFile=Test-Path -Path $checkFile
    if(!$testForFile){
        Copy-Item $file -Destination $folder.FullName
    }  
}

像这样的怎么样

$folders = Get-ChildItem -Recurse -Path C:\temp\1 -Directory
$file = "c:\temp\test.txt"

foreach($folder in $folders){
    $checkFile = $folder.FullName + "\test.txt"
    $testForFile=Test-Path -Path $checkFile
    if(!$testForFile){
        Copy-Item $file -Destination $folder.FullName
    }  
}

使用
Get ChildItem
-Directory
参数获取目录树中的所有目录。然后遍历列表,检查文件,如果没有,复制它。//那似乎是你想要的。你试过什么密码?我们没有你的消息。。给出的答案解决了你的问题吗?如果是,请点击✓ 在左边。这将帮助其他有类似问题的人更容易找到它。使用
Get ChildItem
-Directory
参数可以获取目录树中的所有目录。然后遍历列表,检查文件,如果没有,复制它。//那似乎是你想要的。你试过什么密码?我们没有你的消息。。给出的答案解决了你的问题吗?如果是,请点击✓ 在左边。这将帮助其他有类似问题的人更容易地找到它。