2010-06-07 4 views
0

Sur un fichier rapide ou bat cmd, j'exécutez la commande suivante:erreur trap Gracieusement sur démar

start textpad myfile.txt and it works fine. 

Si le textpad programme n'existe pas sur l'ordinateur, puis un son d'erreur et un pop-up se produit que le Le bouton OK doit être poussé.

Je désire piéger cette erreur pour que je puisse faire quelque chose comme

start textpad myfile.txt || start notepad myfile.txt 

où || implique que si le début du pavé de texte n'est pas réussi, alors le début du bloc-notes devrait se produire. Cependant, je reçois toujours le son d'erreur et l'exigence de frapper OK. Mon intention est d'éviter le son et l'exigence de toute intervention de l'utilisateur.

J'ai également essayé l'approche de chauve-souris ci-dessous, en vain.

start textpad 
if not %ERRORLEVEL% == 0 GOTO END 
start notepad 
:END 

Toute aide serait formidable.

grâce

ted

Répondre

0

Je ne crois pas que vous trouverez un moyen de faire ce travail. Peut-être chercher l'existence de textpad.exe sur la machine? Si vous pouvez prédire le répertoire à partir duquel il sera chargé, cela devrait être assez facile en utilisant IF EXIST.

0

Il existe certaines techniques pour détecter la présence d'un outil spécifique, mais cela ne fonctionne que pour l'outil de ligne de commande ou avec les applications GUI prenant également en charge les options de ligne de commande.

Pour ces trucs, jetez un oeil à la page this. paramètre

0

«/attente » ferait l'affaire pour vous ..

START /wait NOTEPAD.EXE SOME.TXT 
echo %ERRORLEVEL% 
# This gives zero as output. 

START /wait TEXTPAD.EXE SOME.TXT 
echo %ERRORLEVEL% 
# This gives non-zero output. 
+0

Cela ne fonctionne pas pour moi, le message d'erreur apparaît toujours. –

4

Vous pouvez utiliser le petit bout de code suivant pour savoir si le programme vous avez l'intention de lancer existe:

for %%x in (textpad.exe) do set temp=%%~$PATH:x 
if [%temp%]==[] echo Didn't exist. 

Mais puis-je suggérer que vous utilisez simplement

start foo.txt 

au lieu de forcer un éditeur spécifique sur le utilisateur? Les associations de type de fichier sont là pour une raison.

+0

wow, comment ça marche %% ~ $ PATH: x l'astuce? –

+1

@jpm: Documenté dans 'help for' à la toute fin. C'est un peu difficile à comprendre. Il recherche une liste de chemins séparés par des points-virgules donnée par une variable d'environnement ('PATH' dans ce cas) pour le nom de fichier dans' %% x' et renvoie le chemin complet au cas où un tel fichier serait trouvé. – Joey

+0

Nice un Johannes. – aphoria

0

Vous avez probablement déjà une réponse, mais mon ego surdimensionné m'a forcé à poster ma réponse.

Donc, cela devrait fonctionner.

start textpad 2> nul||start notepad 

Cela commencera notepad si la commande start texpad échoue, tout en redirigeant un message d'erreur vous pouvez obtenir de la première commande.

Questions connexes