Este é um problema de longa data com a entrada psexec. O problema parece ser com o manuseio de tubos, basicamente o que o usuário digita na linha set/p
é dividido em várias entradas e alimentado em partes no arquivo em lote, o que obviamente não é o modo como deve funcionar.
O mais próximo de uma solução psexec
pura é o snippet de lote postado pelo usuário qazy
no fórum PsExec da SysInternals em link (aliás, o tópico foi iniciado em 2006, e a resposta do qazy veio em 2012). O código basicamente antecipa a entrada quebrada e tenta remontar as partes em uma única string. Isso funciona principalmente, embora na minha experiência, às vezes, requer uma chave ENTER extra para finalizar uma entrada de linha.
Uma alternativa que encontrei mais recentemente é paexec
do link (aviso obrigatório: não tenho afiliação / interesse com / em poweradmin
, mas eu gosto do fato de que seu paexec
é de código aberto, e eu usei para tarefas da vida real).
Por acaso, paexec
parece ter esse fluxo de entrada correto. Arquivo em lote testsetp.cmd
@echo off
set /p "ip=Enter the ip: "
set /p "sub=Enter the sub: "
echo %ip% subnet mask %sub%
saídas
C:\etc>paexec \otherpc cmd /c D:\temp\testsetp.cmd
PAExec v1.26 - Execute Programs Remotely
Copyright (c) 2012-2013 Power Admin LLC
www.poweradmin.com/PAExec
Connecting to otherpc...
Starting PAExec service on otherpc...
Enter the ip: 192.168.1.1
Enter the sub: 255.255.255.0
192.168.1.1 subnet mask 255.255.255.0
cmd returned 0
PAExec returning exit code 0