2010-11-19 26 views
0

Il est la commande de ligne suivante:processus de capture ne peut pas accéder à

statdump -zdl% db%> "% ckpdb_dir%" \ statdump_% db% .log

le résultat de la Statdump est envoyé au fichier journal, mais je voudrais que s'il y a une erreur, par exemple que le statdump est déjà utilisé par un autre processus, puis je reçois le message "Le processus ne peut pas accéder au fichier parce qu'il est utilisé par un processus anoter sur l'écran, mais je voudrais capturer ces message dans un dossier

J'ai essayé avec:

statdump -zdl% db%> "% ckpdb_dir%" \ statdump_% db% .log> ckpdb.log

mais pas la solution ...

BTW il n'y a pas d'erreur généré lorsque se produit ce

Répondre

0

Essayez ceci:

statdump -zdl %db% -o "%ckpdb_dir%\statdump_%db%.log" 2> error.log 
+0

le drapeau "-o" ne fonctionne pas comme vous le pensiez, il écrit dans le fichier db.log le sintax correct à utiliser avec le statdump (donc erreur) – aemme

+0

peut-être que je pense que cela se produit seulement quand un direct la sortie dans un fichier, parce que dans ce cas, un seul processus peut écrire dedans – aemme

+0

@aemme A travaillé comme il est? –

0

Vous souhaitez rediriger stderr ailleurs que stdout comme ceci:

statdump -zdl %db% >"%ckpdb_dir%\statdump_%db%.log" 2>err.log 

La dernière partie redirige stderr vers le fichier err.log.

+0

J'ai runned la ligne dans un fichier de commandes, ainsi que le même fichier dans une autre commande de terminal de Windows, mais le message est montré au contraire que écrit dans le err.log :( – aemme

+0

@aemme Pourriez-vous expliquer mieux ce que vous avez dans le fichier err.log en utilisant ceci? –

+0

Cette commande illustre le principe: "xcopy sdfjls> log.txt 2> err.txt" .Il crée les deux fichiers, log.txt et err. txt, l'un avec la sortie de stdout et l'autre avec la sortie de stderr –