У меня есть следующий скрипт для удаленного удаления папок / файлов
$Directory = "E:\Data"
Invoke-Command -Computer $Server -ScriptBlock {
param ($dir, $name)
$f = Get-ChildItem -Path $dir | Where {$_.Name -Match "$name"}
If ($f) {
$f | Foreach {
Remove-Item $_ -confirm:$false -Recurse -Verbose
}
}
else {
Write-Verbose "No file found"
}
} -ArgumentList $Directory, $DB
по какой-то причине, вместо этого он пытается искать файлы в C:\users\documents
... хотя я четко определил параметр каталога вE:\Data
Не удается найти путь 'C: \ Users \ Documents \ file.3.db', так как он не существует.
, поэтому file.3.db
фактически существуетна E:\Data
... все же каким-то образом объединяется это с каталогом C:\
..., в котором файл не существует, и выводится это сообщение об ошибке.я запутался, как это происходит
РЕДАКТИРОВАТЬ: приведенный ниже код работает просто отлично, но я обновил его до этого выше, потому что я хотел, чтобы проверка файлов ... хотя теперь это сделало код больше не работает:
Invoke-Command -Computer $Server -ScriptBlock {
param ($dir, $name)
Get-ChildItem -Path $dir |
Where {$_.Name -Match "$name"} |
Remove-Item -confirm:$false -Recurse -Verbose
} -ArgumentList $Directory, $DB