Eu ainda não entendo o que você quer, mas vou fazer algumas suposições, então podemos ver como está ;-) Infelizmente, eu não tenho um shell do Windows prontamente disponível, então meu Batch foo pode estar um pouco errado, especialmente no que diz respeito à citação, duplamente se as coisas contiverem espaços. Edições são bem vindas.
-
Eu entendo que você deseja fornecer um argumento de linha de comando para o seu arquivo de lote. Isso estará disponível dentro do arquivo em lote como
%1
. -
Eu assumo que a string obtida no parágrafo anterior deve ser fornecida ao shell script UNIX como entrada. Isso pode (por exemplo) ser feito no shell de login na caixa do Linux, canalizando um comando echo para o segundo shell.
Tente a seguinte modificação:
start C:\Users\Prateek\Desktop\PLINK.EXE -ssh -P 22 user@host -pw password echo %1 ^| sh -x "/home/user/copy.sh"
Se invocado como mybatch.bat SomeText
, ele deve executar o seguinte em um shell no host remoto:
echo SomeText | sh -x /home/user/copy.sh
que executa copy.sh
e faz pensar que alguém digitou SomeText
em um teclado para ele.