Piszę skrypt wersji w PowerShell itrzeba wywołać niestandardowy plik wykonywalny i przekazać kilka parametrów do pliku wykonywalnego. Niewielu z tych parametrów przypisano wartości z różnych warunków i wykonania w skrypcie. Widzę, że wartości nie są oceniane, gdy wywoływany jest plik wykonywalny. Niektóre zmienne należy również przekazać jako ciąg argumentów wewnątrz podwójnych cudzysłowów. Poniżej pokazano połączenie telefoniczne
mysample.exe „-forcerebuild” „-release =$ CALC_VERSION"" -projfile = sample.proj "" -buildoptions = "/ p: AllowDevDependencies = true / p: AssemblyVersion =$ CALC_ASSEMBLY_VERSION / flp: LogFile =$ env: tempbuild.log / p: BaseIntermediateOutputPath =$ PROJECT_BASEbuild / clp: nosummary „”
Wszystkie zmienne wymagające oceny są podświetlone. Plik exe oczekuje wszystkich opcji zawartych w opcji -buildoptions w cytowanym -buildoptions = „wszystkie opcje kompilacji”
Wartości nie wydają się podlegać ocenie. Jeśli jednak ustawię opcje kompilacji jako osobną zmienną i wydrukuję ją, wydaje się, że wartości zostaną ocenione. Jestem nowy w PowerShell i naprawdę doceniłbym każdą pomoc w tym.
Odpowiedzi:
4 dla odpowiedzi № 1Zauważ, że PowerShell nie wykonuje rozszerzania zmiennych w ciągach pojedynczych cudzysłowów. Na przykład:
$test_variable = "test"
write-host "this is a $test_variable"
write-host "this is a $test_variable"
wydrukuje
this is a test
this is a $test_variable
Ponadto PowerShell ma problemy z przekazywaniem argumentów do ex. Jest taki zwany EchoArgs.exe
to pochodzi Rozszerzenia społeczności Powershell. Skorzystaj z tego i przekaż do tego swój argument, aby sprawdzić, czy zostały poprawnie przekazane.