我没有让if / else状态发挥作用。我试图移动以数字0-9开头的文件夹或文件夹。如果文件夹在那里,将移动文件夹。但是,如果他们不存在,我试图做一个else声明。这是我的剧本:
$Source = "\\Server\share"
$Destination = "\\Server\Archive"
$Dir = Get-ChildItem $Source | Where-Object {$_.Name -match "\d"}
if (!(Test-Path $Source | Where-Object {$_.Name -match "\d"}))
{
Move-Item $Dir -Destination $Destination
}
else
{
Write-Host "No folder to backup"
}
任何人都有任何好的建议我应该如何解决这个问题或使用不同的方法?
答案 0 :(得分:2)
我猜想你要检查$Source
是否包含一个或多个名称以数字开头的子文件夹,并将存在的子文件移动到$Destination
。如果这个假设是正确的,我建议你做以下事情:
$Source = '\\Server\share'
$Destination = '\\Server\Archive'
$Dir = Get-ChildItem $Source -Directory | Where-Object {$_.Name -match '^\d'}
if ($Dir) {
$Dir | Move-Item -Destination $Destination
} else {
Write-Host 'No folder to backup'
}