Je veux fondamentalement combiner les ensembles de commandes suivants. En d'autres termes, je dois vérifier si un fichier exécutable existant dans c: \ apps est en cours d'exécution et, le cas échéant, pour le tuer. Une fois ces commandes terminées, je ferai un robocopy pour mettre à jour les fichiers dans c: \ apps. Ce script sera déployé avec SCCM. Pour cette raison, toutes les commandes doivent renvoyer errorlevel 0, sinon le déploiement sera échoué.
tasklist 2>NUL | find /I /N "processname.exe">NUL
if "%ERRORLEVEL%"=="0" taskkill /f /im processname.exe
et
for /r c:\apps\ %%G in (*.exe) do taskkill /F /IM %%~nxG
launchme.exe
, le nom de l'image peut être différent lorsqu'il est en mémoire.launchme.exe
peut simplement être un wrapper pour d'autres bibliothèques / exécutables qui doivent être chargés avant que l'interface utilisateur réelle ne soit affichée. En d'autres termes, ne vous fiez pas uniquement au nom de l'exécutable.Réponses:
Je propose quelque chose comme:
Il y a une apostrophe suivie directement par des guillemets, vous pouvez donc simplement copier et coller cela.
Il ne s’agit donc que d’une simple ligne (plutôt que d’un fichier de commandes).
C'est une technique assez puissante et flexible. Donc, si cela ne fonctionne pas exactement comme ce que vous avez en tête, jouez avec. Il y aura probablement une propriété qui sera propre aux programmes que vous cherchez à supprimer. Un exemple de recherche des détails est disponible à l' adresse suivante : taskkill - termine les tâches avec les titres de fenêtre se terminant par une chaîne spécifique: la réponse de TOOGAM qui présente un scénario assez similaire.
la source
Voir ce travail par lot pour vous.
la source
dir c:\windows >nul
à la fin.