powershell–uruchomienie exe z parametrem

w całej ‘genialności’ projektanci PS zapomnieli o totalnie najprostszych rzeczach, które co-i-rusz wychodzą. bardzo chciałbym się pozbyć nawyq uruchamiania konsolki cmd ale do cholery… uruchomienie najprostszej instalki z parametrem bywa co najmniej uciążliwe.

w przeciwieństwie do starego ‘okienka DOS’ konsola PS próbuje interpretować cały ciąg jako instrukcję PS. i tak wpisanie:

costam param=1 –option 2 {otherParam:3}

w DOS spowoduje:

  • próbę odnalezienia polecenia ‘costam’
  • jeśli znaleziony – przekazanie całej reszty ciągu do obsłużenia przez ‘costam’

w PS natomiast sprawdzana jest składania całego polecenia. w win 8 jest powershell v3 gdzie pojawiło się specjalne oznaczenie:

--%

które mówi PS aby nie interpretować dalszej części linii. w starszych PS można albo łapać się prawą ręką za lewe ucho przekładając ją pod tyłkiem, albo po prostu odpalić cmd – np. ‘cmd /c polecenie’. dla chętnych do zabawy proszę najlepszy link jaki znalazłem: http://edgylogic.com/blog/powershell-and-external-commands-done-right/

a dodawanie wynalazków typu – – % może i działa i jest wyjściem, niemniej zaczyna przypominać wynalazki z cmd – gdzie zależnie od wykonania używało się coraz dziwaczniejszcyh figur i sztuczek. mam nadzieję, że nie doprowadzą do podobnego bałaganu…

eN.

jak usunąć nieistniejącą sieciówkę?

można grzebać się po rejestrach – i być może czasem jest to niezbędne:

ale można prościej i bez ryzyka. w starych windows wystarczyło uruchomić managera urządzeń i włączyć widok ukrytych urządzeń. w w7/w2k8 trzeba dodatkowo zastosować drobny trick:

  • uruchom cmd [jako admin]
  • ustaw zmienną środowiskową: set devmgr_show_nonpresent_devices=1
  • odpal managera urządzeń: devmgmt.msc
  • włącz widok ukrytych urządzeń: view-> show hiden devices

i teraz ślicznie widać usunięte siecióki – wystarczy usunąć i ładnie wywalą wszystko co trzeba z rejestru (:

eN