[PowerShell] command execution via -c parameter

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • spaceboy
  • Registratie: Februari 2001
  • Laatst online: 07-07 10:37

spaceboy

Op grote hoogte

Topicstarter
Ok, mijn vraag: ik ben echt nét begonnen met gebruiken van PowerShell. Ik ben met een opleiding bezig waarbij ik een TcpListener moet aanmaken. Dat boeit allemaal niet zoveel, want ik heb het idee dat ik syntactisch gewoon iets heel basaal fout doe met het opstarten van een script in PowerShell. Dit staat dus (denk ik) los van TcpListeners of andere fancy dingen. Geen Hello World, maar Hello Faalhaas dus. :P

Hieronder een plaatje met wat ik fout zie gaan en wat wél goed gaat. Kortom: met de -c (of -Command, maakt niet uit qua foutmelding) krijg ik deze fout.

Afbeeldingslocatie: https://tweakers.net/i/0djBNe1O5smBBw0jB5RK9w5Yc8A=/800x/filters:strip_exif()/f/image/ECVqMCinAIbE8tIysOcCejAA.png?f=fotoalbum_large

Voor zover ik de fout begrijp lijkt het of de variabele $listener gewoon totaal niet gevuld wordt, met een syntax-fout tot gevolg als hij (blanco).start() wil gaan uitvoeren. Waarom!?

Ik heb al geprobeerd met spaties te werken. En zoals het screenshot laat zien zonder " en " maar gewoon rechtstreeks uitvoeren. Gaat ook prima. In een scriptfile zetten en deze opstarten: ook prima.

Kan iemand mij vertellen wat voor een enorme eikel ik ben en wat ik over het hoofd zie? ;)

[ Voor 4% gewijzigd door spaceboy op 22-05-2020 22:15 ]

Aan bovenstaande tekst kunnen geen rechten worden ontleend. Aan de tekst hieronder wel.

Beste antwoord (via spaceboy op 24-05-2020 12:25)


  • Outerspace
  • Registratie: Februari 2002
  • Laatst online: 17:40

Outerspace

Moderator General Chat / Wonen & Mobiliteit

AFX Ghey Edition by HlpDsK

Binnen Powershell hoef/kun je met een -command niet een variabele te vullen. Een variabele vullen kan je gewoon starten met $xxxxx ipv het aanroepen binnen powershell met powershell -c en dan $xxxx

Powershell -c / powershell -command gebruik je (voor zover ik het begrepen heb) buiten Powershell om (in een batch/cmd).

Zoekt nieuwe collega's (jr/sr engineers, servicedeskmedewerkers of managers in de Randstad

Alle reacties


Acties:
  • 0 Henk 'm!

  • kluyze
  • Registratie: Augustus 2004
  • Niet online
Ik ken powershell niet echt, en er op zoeken lukt ook niet geweldig.

Maar als ik test zonder de $listener.start() dan geeft die bij mij al een foutmelding op de toekenning van de variable $listener. Dus het lijkt dat een toekenning (in elk geval op deze manier) in een command string niet toegestaan is.

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 08:21

Creepy

Tactical Espionage Splatterer

Ik denk dat je de $'s moet escapen, omdat de PowerShell waarin in je powershell aanroept de variabelen al vervangt.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • Room42
  • Registratie: September 2001
  • Niet online
Creepy schreef op vrijdag 22 mei 2020 @ 22:41:
Ik denk dat je de $'s moet escapen, omdat de PowerShell waarin in je powershell aanroept de variabelen al vervangt.
@spaceboy Ik denk het ook. Als je hem vanuit cmd zou draaien, zou het waarschijnlijk wel werken. Waren het niet dat er dan niks gebeurt, omdat je shell direct weer stopt.

Ik vind dit altijd een lekker compacte site met veel handige info: https://ss64.com/ps/powershell.html

[ Voor 15% gewijzigd door Room42 op 22-05-2020 22:45 ]

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron


Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • Outerspace
  • Registratie: Februari 2002
  • Laatst online: 17:40

Outerspace

Moderator General Chat / Wonen & Mobiliteit

AFX Ghey Edition by HlpDsK

Binnen Powershell hoef/kun je met een -command niet een variabele te vullen. Een variabele vullen kan je gewoon starten met $xxxxx ipv het aanroepen binnen powershell met powershell -c en dan $xxxx

Powershell -c / powershell -command gebruik je (voor zover ik het begrepen heb) buiten Powershell om (in een batch/cmd).

Zoekt nieuwe collega's (jr/sr engineers, servicedeskmedewerkers of managers in de Randstad


Acties:
  • 0 Henk 'm!

  • spaceboy
  • Registratie: Februari 2001
  • Laatst online: 07-07 10:37

spaceboy

Op grote hoogte

Topicstarter
Top, dank voor jullie reacties. Zoals ik het zie hebben jullie allemaal gelijk (ik heb de reactie van Outerspace maar gemarkeerd als "Beste antwoord" maar eigenlijk kloppen ze allemaal... ;-)

Thanks!

Aan bovenstaande tekst kunnen geen rechten worden ontleend. Aan de tekst hieronder wel.

Pagina: 1