我写了一个PS脚本来备份备份文件夹中的配置文件。要求是仅复制具有配置文件的文件夹。
我正在使用copy-item
命令,但是在运行脚本时,发现不必要的文件夹被复制了。
我已附上截图以获取更多详细信息。
当前:
Copy-Item -Path $SourcePath –Filter $fileType -Destination $DestinationPath –Recurse
我尝试过:
Get-ChildItem $sourcePath -File -Include "*.config" -Recurse |
Where-Object { $_.DirectoryName -like "*$dirname*" }
Copy-Item -Path $files -Destination $dest
只有包含配置文件的文件夹应被复制到备份文件夹。
答案 0 :(得分:0)
如果我正确理解了这个问题,请将您当前的脚本更改为此:
$sourcePath = 'D:\Test'
$destinationPath = 'D:\Result'
$excludeFolder = 'NoConfigFileFolder'
# create the destination folder if this does not yet exist
if (!(Test-Path -Path $destinationPath)) {
New-Item -Path $destinationPath -ItemType Directory | Out-Null
}
Copy-Item -Path $sourcePath –Filter '*.config' -Destination $destinationPath –Recurse -Exclude "*$excludeFolder*"
应该工作。
如果结构是这样的:
D:\TEST | bla1.config | web1.config | +---ConfigFileFolder | bla.config | web.config | \---NoConfigFileFolder leavethis.config
生成的备份文件夹如下:
D:\RESULT | bla1.config | web1.config | \---ConfigFileFolder bla.config web.config