2013-11-27 4 views
1

Я хочу протестировать пути. Я написал следующий скрипт, но я не могу добавить строку к настраиваемому объекту. Это оскорбительная линия $DesktopCheck = | $FName + "\desktop". Как добавить строку «рабочий стол» в пользовательский объект $ fname?Как связать пользовательский объект со строкой

$FoldNames = dir \\server\RedirectedFolders | Select-Object fullname 

foreach ($FName in $FoldNames) 
{ 
    $DesktopCheck = | $FName + "\desktop" 
    Test-Path $DesktopCheck 
} 

Благодаря

ответ

4

Используйте Join-Path для построения путей. Это помогает избежать головных болей, вызванных необходимостью отслеживать ведущие/задние обратные косые черты. Я также рекомендовал бы использовать опцию -LiteralPath, если вам не нужны подстановочные знаки/шаблоны в матче. Попробуйте это:

dir \\server\RedirectedFolders | % { 
    Test-Path -LiteralPath (Join-Path $_.FullName "desktop") 
} 
+0

Результаты не правильно отформатирован пути. Это примерный результат @ {FullName = \\ server \ RedirectedFolders \ Alan.Richardson} \ desktop. Я хочу, чтобы результат был \\ server \ RedirectedFolders \ Alan.Richardson \ desktop. – resolver101

+0

Спасибо. Просто то, что я хотел :-) – resolver101

0

Попробуйте это:

$FoldNames = dir \\server\RedirectedFolders | Select-Object -ExpandProperty fullname 

foreach ($FName in $FoldNames) 
    { 
    Join-Path -Path $FName -ChildPath '\desktop' 
    Test-Path $DesktopCheck 
    } 
Смежные вопросы