[powershell] przekazywanie strumieni in/out do procesu


(Zulowski) #1

Witam, chciałem napisać sobie skrypt w PowerShellu który po prostu przekazywałby kolejne linie tekstu do programu/procesu który sam by uruchamiał (mianowicie ""winscp.com" [sftp])

WinSCP można uruchomić z plikiem tekstowym jako parametr z taką zawartością:

# Automatically abort script on errors

option batch abort

# Disable overwrite confirmations that conflict with the previous

option confirm off

# Connect using a password

# open sftp://user:password@example.com -hostkey="ssh-rsa 1024 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"

# Connect

open sftp://login@server.xx

# Change remote directory

cd www/

# Force binary mode transfer

#option transfer binary


#upload

cd /home/login/www/

put nazwaPlikuDoWyslania

# Disconnect

close

# Exit WinSCP

Ewentualnie w trybie interaktywnym, w tedy samemu się podaje te polecenia.

Chciałbym by PowerShell po prostu uruchomił sobie ten proces, i po kolei przekazywał mu parametry (gdyż będą się zmieniać, jak chociażby nazwa pliku do wysłania).

Myślałem nad generowaniem całości takiego pliku przez powershell, po czym uruchamianie winscp z tym plikiem jako parametr, i usuwanie pliku po zakończonej operacji, ale wydaje mi się to zbyt dziwnym podejściem do problemu.

Ewentualnie jak takie coś osiągnąć w bashu? Myślę, że nie będzie większego problemu z przetłumaczeniem.