Gå til innhold

Anbefalte innlegg

Skrevet

Hei

 

Jeg prøver å kjøre et installasjonsprogram i "unatended" -modus fra Powershell, men får det ikke til.

 

Fra vanlig cmd-shell kan jeg skrive:

 

c:>setupconsole.exe -f inputfil.txt -i silent

 

Dette starter installasjonen med installasjonsvalgene fra inputfil.txt.

 

MEN, jeg ønsker å scripte dette i Powershell.

 

PS>.\setupconsole.exe -f inputfil.txt -i silent

 

Når jeg skriver dette i et shell eller i et powershell -script returnerer setupconsole.exe med en gang uten noen feilmelding...

 

Hvordan starter jeg .exe -filer på en bedre måte?

 

Mvh

Pål

Videoannonse
Annonse
Gjest Slettet+9871234
Skrevet (endret)

Gjør du det fra webserveren hos din hoster? Det er en tid siden jeg så på dette, men min hoster anbefalte meg så vidt jeg husker - for noen år siden å bruke Putty

 

Jeg kjenner ikke PowerShell, så kanskje jeg ikke svarer på akkurat det du vil oppnå?

Endret av Slettet+9871234
Skrevet

Siden Powershell er et Shell, håndteres argumenter litt anderledes enn CMD.EXE. Når du skal kjøre et eksternt program (eller et Win32 API-kall) må du ta hensyn til dette slik som eksemplene i linken grapz viser til.

 

Artikkelen PowerShell and external commands done right synes jeg beskriver på en god måte hva man må gjøre for å få et eksternt program til å kjøre med de parametre du oppgir fra Powershell. Denne artikkelen viser også bruk av ECHOARGS.EXE (en del av PSCX) som er et verktøy for å se hvilke argumenter du har gitt som input, dvs. hvordan de ser ut etter at Powershell har prosessert argumentene dine. Nyttig!

 

Powershell v3 har forøvrig en forbedret måte å løse dette på, --% kan brukes for å angi at alt etter --% skal håndteres av CMD.EXE.

  • Liker 1
  • 2 uker senere...
Skrevet

Takk for bra svar særlig til graps og NoBo som satte meg på riktig spor. Ved å bruke echoargs fant jeg ut at jeg hadde vært slurvete med mellomromene mellom opsjon og opsjonsargument... Løsningen ble noe slikt:

 

$CMD = 'SuperApp.exe'

$arg1 = 'filename1'

$arg2 = '-someswitch'

$arg3 = 'C:\documents and settings\user\desktop\some other file.txt'

$arg4 = '-yetanotherswitch'

 

& $CMD $arg1 $arg2 $arg3 $arg4

 

Takk

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...