Powershell + файлы конфигурации - PullRequest
0 голосов
/ 17 октября 2011
[xml]$configSettings = get-content .\ScriptSigner.config
Write-Host([string]::Format("XML Settings : {0}",$configSettings.InnerXml))

$sourceFolder =  ($configSettings.folder.sourcefolder)
$destinationFolder = ($configSettings.folder.destinationFolder)

Write-Host ("Source Folder = $sourceFolder");
Write-Host ("Destination Folder = $destinationFolder");

$items = Get-ChildItem -Path @sourceFolder

# enumerate the items array
foreach ($item in $items)
{
      # if the item is a directory, then process it.
      if ($item.Attributes -eq "Directory")
      {
            Write-Host $item.Name
      }
}

Выше приведен код powershell, который я использую для чтения всех дочерних элементов из каталога.Этот каталог настраивается в файле конфигурации.

Но я продолжаю получать эту ошибку

     ERROR: Get-ChildItem : A positional parameter cannot be found that accepts argument '\'.
ERROR: At F:\Gagan\powershell\ScriptSigner.ps1:37 char:23
ERROR: + $items = Get-ChildItem <<<<  -Path @sourceFolder
ERROR:     + CategoryInfo          : InvalidArgument: (:) [Get-ChildItem], ParameterBindingException
ERROR:     + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
ERROR:

Кто-нибудь хочет помочь, пожалуйста?

Спасибо и С уважением gagan

1 Ответ

1 голос
/ 17 октября 2011

$ items = Get-ChildItem -Path @ sourceFolder

Я думаю, вы имеете в виду:

$items = Get-ChildItem -Path $sourceFolder

$ префиксы имен переменных, используйте @когда вы используете хеш-таблицу для "разделения" нескольких аргументов (что не сработает в этой позиции, потому что -Path требует аргумента).

...