2010-09-24 7 views
0

J'écris la sortie de la ligne de commande dans un fichier, puis je veux ouvrir ce fichier dans le bloc-notes. J'ai donc écrit quelque chose comme ce qui suit (exemple simplifié):Comment fermer un fichier créé à partir de la ligne de commande?

set logPath=log.txt 
echo %date% %time% > %logPath% 
notepad %logPath% 

Mais le problème est que lorsque la dernière commande est exécutée (notepad% logpath%), le fichier n'a pas encore été créé (ou le contenu n'est pas lui est envoyé), ainsi le bloc-notes n'ouvre pas le fichier inexistant ou en ouvre un vide (dépend). Donc, je voudrais savoir s'il existe un moyen de forcer la fermeture de fichier à partir de la ligne de commande. UPD: je vous remercie pour vos commentaires, vous avez raison: cet exemple particulier (simplifié) fonctionne vraiment. J'ai essayé sur W7 et il y a des rapports dans les commentaires que cela fonctionne dans XP et Vista. Ce n'est pas dans le script original, va essayer d'y chercher une erreur.

+1

Le fichier doit être fermé automatiquement dans le lot. Votre exemple fonctionne correctement sur ma machine Vista. Est-il possible que le problème réel soit lié au nom de fichier ou à quelque chose d'autre dans vos scripts originaux? –

Répondre

0

Votre exemple de code fonctionne pour moi sous Microsoft Windows XP [version 5.1.2600]. Pour autant que je sache, il suffit de fermer le fichier que vous avez ouvert et la tuyauterie ne s'ouvre pas.

Donc, vous devriez vérifier votre code réel pour une erreur (mettre à jour votre question avec elle?).

+0

@RC En quoi la tuyauterie et l'ouverture sont-elles différentes? – Midhat

+0

La tuyauterie est manipulée par la coquille et l'ouverture est traitée par le développeur –

0

Essayez ceci:

echo %date% %time% > log.txt 
notepad %logPath% 

Je pense, il attend un nom de fichier sur la redirection et non un nom de variable.

+0

J'ai essayé cela, n'a pas fonctionné pour moi, malheureusement. En fait, j'ai introduit une variable plus tard, à l'origine c'était exactement comme vous l'avez dit. –

0

Le problème semble étrange, mais si son survenant, pourquoi ne pas attendre un sec

CHOICE /C:x /T:x,1 > NUL 
+0

Je ne pense pas que l'attente soit une bonne solution à un tel problème. –

Questions connexes