2012-01-04 19 views
7

Sto lavorando alla creazione di un singolo comando che eseguirà più cose sulla riga di comando di un'altra macchina. Ecco cosa sto cercando di fare.Esecuzione di comandi mulitple in cmd tramite psexec

  • Usa psexec per accedere computer remoto
  • viaggio per directory appropriata e il file
  • eseguire task ant
  • uscita cmd
  • correre insieme in una sola riga

posso correre il sotto comando da Esegui per completare ciò che ho bisogno di realizzare ma non riesco a ottenere il formato corretto per Psexec per capirlo.

cmd /K cd /d D:\directory & ant & exit 

Ho cercato appling questo all'esempio psexec seguito:

psexec \\machine cmd /K cd /d D:\directory & ant & exit 

Quando esegue questo attiverà la linea di comando e di viaggio per D:\directory ma non eseguirà i comandi rimanenti. L'aggiunta di "" crea solo più problemi.

Qualcuno può guidarmi nel formato corretto? O qualcosa di diverso da psexec che posso usare per completare questo (solo opzioni gratuite)?

risposta

7

Lo abbiamo capito finalmente dopo un po 'di ricerche su Internet e tentativi ed errori. psexec ha bisogno di/c per eseguire più comandi, ma quella sintassi non funziona con l'installazione che ho scritto sopra. Ho ottenuto il comando seguente per eseguire ciò di cui ho bisogno.

psexec \\machine cmd /c (^d:^ ^& cd directory^ ^& ant^) 

Non è necessario uscire perché Psexec si chiuderà automaticamente al completamento. È anche possibile utilizzare & & per richiedere il successo per continuare con il comando successivo. Ho trovato questo forum utile

http://forum.sysinternals.com/psexec_topic318.html

E questo per l'esecuzione di comandi psexec

http://ss64.com/nt/psexec.html

+0

si può spiegare a quando esatto per mettere '^', non riesco a capirlo con questo codice. – IGRACH

0

Dal momento che hai chiesto altre opzioni e questo ha la configurazione di tag managment-- Credo che si può essere interessati a Jenkins (o Hudson). Fornisce un ottimo modo per creare un meccanismo master-slave che può aiutare a semplificare il processo di compilazione.

2

Questo funziona:

psexec \ NomeComputer cmd/c "echo hey1 & eco hey2"

0

Io uso sempre come in questo modo :) e funzioni correttamente

psexec \\COMPUTER -e cmd /c (COMMAND1 ^& COMMAND2 ^& COMMAND3)