2015-02-25 3 views
1
$Source = "[source]" 
$Destination = "[destination]" 


xcopy $Source\* $Destination /Y 

Get-ChildItem -path $Destination\* -Include *.zip,*.rar,*.7z | %{ 
    if($_.Name -match "^*.'.zip$" -or $_.Name -match "^*.'.7z$" -or $_.Name -match "^*.'.rar$"){ 
     $parent="$(Split-Path $_.FullName -Parent)";  
     [email protected]("x", "'"$($_.FullName)'"", "-o'"$($parent)'" -y"); 
     $ex = start-process -FilePath "'"C:\Program Files\7-Zip\7z.exe'"" -ArgumentList $arguments -wait -PassThru; 
     if($ex.ExitCode -eq 0){ 
      rmdir -Path $_.FullName -Force 
     } 
    } 
} 
rmdir -Path $Source\* -recurse -Force 

Когда я пытаюсь запустить этот сценарий, я получаю следующее сообщение об ошибке:Powershell синтаксис сценария вопрос

Unexpected token '$(' in expression or statement. 
At D:\Bluedoor\WealthNET Files\Interface Data\RMS\Untitled3.ps1:10 char:32 
+   [email protected]("x", "'"$(<<<< $_.FullName)'"", "-o'"$($parent)'" -y"); 
    + CategoryInfo   : ParserError: ($(:String) [], ParentContainsErrorRecordException 
    + FullyQualifiedErrorId : UnexpectedToken. 

ответ

0

Не уверен, что именно то, что вы хотите сделать, но вы должны попробовать это:

[email protected]("x", "$($_.FullName)", "-o`"$($parent)`"", "-y"); 

в -o аргумента `(обратная кавычка) позволяют использовать" (двойной . цитаты) внутри строки, ограниченной двойников кавычки

Get-ChildItem t.txt | % {$parent="coucou";[email protected]("x", "$($_.FullName)", "-o`"$($parent)`"", "-y");$arguments} 

дает:

x 
C:\temp\t.txt 
-o"coucou" 
-y 
0

Проблема в том, ваши котировки. Я думаю, что вы хотите, это

[email protected]("x", ""'$($_.FullName)'"", "-o'"$($parent)'" -y"); 
+0

Не работает человек. все еще бросая ошибку. Неожиданный токен '$ ($ _. FullName)' в выражении или выражении. В D: \ Bluedoor \ WealthNET Файлы \ Данные интерфейса \ RMS \ Untitled3.ps1: 10 char: 45 + $ arguments = @ ("x", "" '$ ($ _. FullName)' <<<< " "," -o '"$ ($ parent)'" -y "); + CategoryInfo: ParserError: ($ ($ _. FullName): String) [], ParentContainsErrorRecordException + FullyQualifiedErrorId: UnexpectedToken – user3012974

Смежные вопросы