J'écris un fichier de commandes pour Windows et utilisez la commande 7z code> (7-zip). J'ai mis l'emplacement de celui-ci sur le chemin. Y a-t-il un moyen relativement facile de vérifier si la commande est disponible? P>
4 Réponses :
Oui, ouvrez une fenêtre de commande et tapez "7Z" (je suppose que c'est le nom de l'exécutable). Si vous obtenez une erreur disant que la commande ou l'opération n'est pas reconnue, vous savez que l'instruction PATH a un problème quelque part, sinon cela ne le fait pas. P>
Une tentative d'exécution de 7z.exe code> retournera un
% errorLelvel% code> de 9009 si la commande est introuvable. Vous pouvez vérifier cela.
7z.exe
if %errorlevel%==9009 echo Command Not Found
Une manière plus agréable serait 7z.exe> Nul 2> & 1 | Commande ECHO non trouvée code>, je suppose.
Dans ce cas, cela fonctionne, mais c'est une habitude risquée d'avoir - que si on essayait Supprimer-Hard-drive.bat code> pour tester son existence?
@Erichgubler, je ne suggère jamais que l'affiche originale utilise cela comme une solution de travers la carte. J'ai répondu avec une option qui fonctionne - et est inoffensive-- pour son étui d'utilisation spécifique. Pour cette raison, je ne pense pas que cela méritait un bowvote.
@Marc, un avertissement serait suffisant pour que je puisse retirer mon bowvote! :)
yup,
Merci, pourquoi dites-vous défini = code>?
@Joey il y a une solution facile pour cela. Utilisez des guillemets doubles. Cependant, cela ne fonctionne pas si l'extension de la commande (EXE, BAT) n'est pas spécifiée alors que la solution acceptée le fera.
faire pas strud> em> exécutez la commande pour vérifier sa disponibilité (c'est-à-dire trouvé dans la variable code> d'environnement code>). Utilisez où code> a > Au lieu de:
Get-Command <cmd>
IF ($? -ne $true)
{
Write-Host "<cmd> not found in path"
# Do something about it
}