/ / Esiste l'emulatore / interprete "Windows Batch file" per UNIX? - windows, unit-testing, macos, unix, batch-file

Esiste l'emulatore / interprete "Windows Batch file" per UNIX? - windows, unit-testing, macos, unix, batch-file

Posso eseguire il file batch su UNIX? (Linux / Mac OS X)

Sto cercando l'interprete per eseguire il file di Windows Batch su UNIX, come "bash" per script bash, "csh" per script csh, quindi "XXX" per il file batch di Windows.

Sto sviluppando un'applicazione Java.

  • L'ambiente di sviluppo è su Mac OS X
  • ma l'ambiente target (eseguito principalmente) è su Windows.
  • L'applicazione utilizza file batch ed eseguibile di Windows.
    • genera * .bat per eseguire il programma stub (* .exe).
  • Quindi voglio scrivere i test unitari e preparare il programma stub (* .exe come script bash),
  • e vuoi eseguirlo su Mac OS X - non su Windows.
    • ma, non significa che voglio eseguire (emulare) il binario di Windows (* .exe) ... Voglio solo avviare * .bat e lasciare che invochi test stub * .exe fatto con sh / perl / ruby.

...Qualche idea?

(Correlato a) come posso eseguire il file batch di Windows da UNIX-AIX?

risposte:

3 per risposta № 1

cmd.exe è valutato NSFW nel mio prefisso

Guardare le finestre PowerShell

Se insisti, usa Vino su Linux, Solaris, BSD ecc. Viene fornito con cmd.exe :)

Wikipedia su Vino

Supporto per MacOSX:


2 per risposta № 2

No, non c'è una tale bestia e, se c'è è un dio, non ci sarà mai :-)

Mentre lo sforzo per creare un interprete di file batch è da moderato ad alto (soprattutto se non si utilizza ogni singola funzionalità di cmd.exe), eseguire l'eseguibile è così tanto, tanto Più forte.

Vorrei indagare su una soluzione di partenzasu una macchina virtuale Windows pulita e eseguendo l'applicazione sotto Windows. Potresti facilmente eseguire i tuoi test unitari come programmi Windows in modo da non doverti preoccupare di guidare la VM da OSX.

L'unica cosa che devi preoccuparti di tecon è come ottenere i risultati di nuovo su OSX dalla VM di Windows. Dovrebbe essere fattibile (anche se kludgy) tramite l'archiviazione di rete (dischi condivisi o NFS o qualcosa di simile).