2017-09-30 4 views
0

J'ai ce fichier .bat que je voudrais exécuter en arrière-plan. Le fichier lance essentiellement les processus. La sortie du fichier .bat serait:Exécution d'un fichier bat en arrière-plan

X:\bin>start_STAF.bat 
start_STAF.bat 

X:\bin>X:\ActiveState\Perl\perl-5.14.0\bin\perl.exe x:\bin\start_STAF.pl 

The operation completed successfully. 
The operation completed successfully. 
The operation completed successfully. 
* 
STAFProc is now Started. Leave this window up. 
* 

En appuyant sur la touche Entrée après quelques minutes retourne le contrôle à l'invite. Je n'aime pas ça parce que ce processus doit être lancé via un script Perl et je ne sais pas comment on pourrait automatiser la touche Entrée via Perl.

Il y a quelques choses que j'ai essayées, sans succès.

J'ai essayé d'utiliser START /B start_STAF.bat mais cela fait qu'il revient à l'invite sans lancer le fichier .bat. Cependant, la prochaine fois que j'exécuterai tasklist, le fichier .bat sera lancé sur stdout. Cela me ramène à la case départ.

J'ai essayé de rediriger stdout/stderr en tant que start_STAF.bat >nul 2>&1 mais cela aussi, ne lance pas le fichier .bat.

Y at-il autre chose que je puisse faire? Merci!

+0

https://metacpan.org/pod/Expect#Can-I-use-this-module-with-ActivePerl-on-Windows – simbabque

+0

@NikhilHegde Comme vous avez exécuté une recherche de dépassement de pile avec le terme de recherche [\ [ batch-file \] lancer le fond] (https://stackoverflow.com/search?q=%5Bbatch-file%5D+run+background), quel sujet était le plus prometteur pour vous? – Mofi

+0

@Mofi Tout ce qui concerne l'exécution d'un fichier batch en arrière-plan serait prometteur. Et la nature du problème est telle que le fichier batch sur lequel je travaille actuellement est en lecture/exécution seulement. –

Répondre

1

Exécutez simplement la commande START start_STAF.bat.