1

Добрый день

Я создал следующую PowerShell

function script{
    param (
        [string]$path = {"C:\PowerShellTest\Med Rec\1\", "C:\PowerShellTest\Med Rec\2\", "C:\PowerShellTest\Med Rec\3\"}
        )
    }

Get-ChildItem $path -Recurse | Select-Object Directory,Name,CreationTime | Export-Csv "C:\PowerShellTest\Med Rec\text.csv" -Force -NoTypeInformation

Remove-Item -Recurse -Path $path 

когда я запускаю его, я получаю следующую ошибку

Remove-Item : Cannot bind argument to parameter 'Path' because it is null.
At C:\PowerShellTest\New folder\Content Deleted Daily at 1AM.ps1:9 char:28
+ Remove-Item -Recurse -Path $path
+                            ~~~~~
    + CategoryInfo          : InvalidData: (:) [Remove-Item], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.RemoveItemCommand

Я не могу понять, почему это не работает.

2 ответа2

1

Ваша переменная $path находится вне области, в которой вызывается Remove-Item .

Посмотрите на этот пример:

function script{
    $path = "hello";
    echo $path;
}
echo $path;

Когда echo $path вызывается в последней строке, ничего не выводится, потому что в $path не было никакого значения. Однако, если я вызываю script то выводится hello , но как только эта функция script будет завершена, запуск переменной $path внутри функции больше не будет доступен.

Чтобы исправить, определите переменную $path которой у Remove-Item есть доступ, например, перед функцией скрипта.

Чтобы узнать больше о возможностях Powershell, ознакомьтесь с полной документацией Microsoft.

https://technet.microsoft.com/en-us/library/hh847849.aspx

0

Я исправил это, просто создав псевдоним (надеюсь, это правильный термин).

$ path = "C:\PowerShellTest\MedRec\1\", "C:\PowerShellTest\MedRec\2\", "C:\PowerShellTest\MedRec\3\"

Get-ChildItem $ path -Recurse | Имя выбранного объекта, CreationTime | Export-Csv "C:\PowerShellTest\MedRec\text.csv" -Force -NoTypeInformation

Get-ChildItem $ path -Recurse | Remove-Item -Recurse -Force

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .