windows - Problemer, når du ringer PowerShell med instruktioner som parametre

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg skriver et program, der involverer at køre PowerShell og overfører instruktionerne som det første argument. Jeg sender flere instruktioner og kæder dem sammen med en ;. Efter fejlfinding og testning af ting tror jeg, at jeg fandt kernen i mit problem, og jeg kan ærligt talt ikke fortælle om dette er en PowerShell-fejl eller hvis jeg bare er ekstremt dum. 'Glitch' koger i det væsentlige ned til følgende:


Hvis du åbner PowerShell og kører:


$string = "test"; Add-Content "A:file.txt" $string 


Du får en file.txt, og den indeholder 'test' som forventet.
Nu, hvis du i stedet kalder PowerShell, siger fra terminalen, og send denne instruktion som en parameter, får du file.txt men uden indhold indenfor, på trods af at kommandoen er identisk. Mit gæt er, at variablen $string kasseres efter ;, når instruktionen er bestået som et argument, men hvad ved jeg. Kan der være et arbejde rundt, eller mangler jeg noget klart?

Bedste reference


powershell $x="test"; add-content c:path	est.txt $x


behandles noget lignende


powershell 
    $x="test";        # run this script code

        add-content   # with this as parameter 1
        c:scq.txt   # with this as parameter 2
        $x            # with this as parameter 3


Du vil citere det, så hele scriptet er et enkelt argument til powershell.exe, noget mere som dette:


powershell "$x='test'; add-content c:path	est.txt $x"