J'essaie d'utiliser un fichier de commandes comme choix de votre propre aventure dans laquelle l'utilisateur peut créer un caractère et être appelé par nom et tel que les personnages de l'histoire. Il m'a frappé une heure de retour sur lequel il serait cool si comme ou après que le fichier de lot contenant l'histoire a été exécuté, il fallait un journal de toutes les commandes d'écho afin que, plus tard, le joueur puisse lire ce qu'ils ont fait sur tout jeu donné. < / p>
J'aimerais que le fichier journal soit lu comme ceci: p>
% Date %% Time%% (Tout le texte affiché par Echo Commandes pour la longueur du fichier est exécutée) p>
Malheureusement, tout ce que je peux comprendre comment faire est de créer un fichier logé avec juste la date et l'heure. Mettre ">> storylog.txt" fonctionne pour créer le fichier .txt et que je reçois la date et l'heure de là, mais il affiche simplement le texte ">> StoryLog.txt" après ce que je souhaite que le fichier de commandes s'affiche dans TXT écho Dans "Vous allez au nord du chemin >> StoryLog.txt" est affiché à l'écran. Cela ne fonctionnera naturellement pas. Que dois-je faire? P>
4 Réponses :
Vous ne pouvez pas le faire dans le script de lot littéralement, mais si vous définissez des fonctions, vous pouvez générer des données dans le bloc de fonction qui écrit également sur un fichier journal avant que la fonction ne renvoie, comme:
@ECHO off SETLOCAL ENABLEDELAYEDEXPANSION ENABLEEXTENSIONS echo. 2>outfile.log CALL :functionPerson "Jon Doe" jump GOTO :END :functionPerson fullname action ECHO fullname is ^"%~1^" ECHO action is %2 ECHO %1 performs action %2>> outfile.log EXIT /B 0 :END pause
Chaque fois que vous echo code> pour le lecteur de savoir ce qui se passe, vous pouvez également
echo code> dans votre fichier journal, ajouter la date et l'heure au début de votre ligne :) Simple que cela pour moi.
Je ne sais pas comment votre script semble cependant. P>
Codage démêté pour avoir des paires de lignes partout. Mieux vaut créer une nouvelle routine logecho qui echos à l'écran et se connecte également au fichier.
À cette fin, j'utilise ce qui suit:
:logit echo %~1 echo %date%,%time% - %~1 >>logfile exit /b 0
Technique intéressante. J'avais espéré que c'était une astuce de fichier temporaire in-mémorisée, mais elle est écrite sur le disque en tant que fichier avec le nom de fichier de soulignement unique. Également dans mes tests, j'ai trouvé qu'un seul et code> est nécessaire ... IE
SET Testout = ^> _ ^ & Type _ code> ...
DIR% Testout% code>
_ est juste utilisé comme tampon - parce que j'ai besoin de la sortie (donnée une fois) deux fois. C'est en fait un fichier et est écrasé à chaque fois. Et oui, puisque c'est un fichier, vous pouvez l'utiliser, mais vous le souhaitez - jusqu'à ce que vous l'écriviez à la suivante "ECHO BLABLABLA% logG%" et vous avez raison, un seul "&" devrait faire (il était tard la nuit, Quand j'ai travaillé ça - et je ne l'ai plus jamais touché, une fois que cela a fonctionné)
Comme mon autre réponse a été assez longue en raison de quelques modifications, voici une nouvelle suggestion
(Pas beaucoup changé, mais cela rend le code assez facile à lire):
+1, mais il échoue avec du texte comme % dire% "Cela devrait être un caret ^ pas deux" code> et
% dire% "un ampersand ^ & échec" code>
aussi |, <,> va échouer. Chaque astuce a des limites. Mais je pense que ça va pour la question initiale. Je pense qu'une aventure textuelle ne fera pas l'utilisation de ces caractères spéciaux.
Vous pouvez utiliser
TEE code>, disponible également pour Windows.