Ajouter une ligne dans un fichier texte avec Windows fichier de commandes
J'ai un fichier texte qui a plus de 200 lignes, et je veux juste ajouter une nouvelle ligne avant la ligne 4. Je suis sur Windows XP.
Exemple de fichier texte avant de l'entrée:
header 1
header 2
header 3
details 1
details 2
Après de sortie:
header 1
header 2
header 3
<----- This is new line ---->
details 1
details 2
OriginalL'auteur newbie18 | 2011-09-13
Vous devez vous connecter pour publier un commentaire.
Je crois que vous êtes à l'aide de la
fonction?
Si donc la réponse serait tout simplement l'ajout d'un "." (Dot) directement après l'écho et rien d'autre.
Exemple:
à l'aide de la
>>
pour diriger la sortie vers le fichier à ajouter à la fin du fichier. Si vous utilisez un seul chevron puis à la sortie de remplacer le fichier existant, si elle n'existe pas, ou créer un nouveau fichier si il ne le fait pas.Désolé, que je n'ai pas la bonne idée.
OriginalL'auteur avitex
Vous pouvez utiliser:
ou quelque chose comme ceci:
Si c'est un vieux post, si quelqu'un veut utiliser cette solution dans windows, veuillez utiliser echo. >> combine.txt. Les autres "point" après l'écho devrait résoudre le "ECHO" problème.
vous devriez faire une réponse.
OriginalL'auteur khaled
AVERTISSEMENT: ci-dessous La solution ne permet pas de conserver de fuite onglets.
Si vous connaissez le nombre exact de lignes dans le fichier texte, essayez la méthode suivante:
La boucle lit les lignes du fichier d'origine, un par un, et les sorties. La sortie est redirigée vers un fichier temporaire. Lorsqu'une ligne est atteint, une ligne vide est sortie avant.
Après avoir terminé, le fichier original est supprimé et le temporaire devient attribué le nom d'origine.
Mise à JOUR
Si le nombre de lignes est inconnu à l'avance, vous pouvez utiliser la méthode suivante pour obtenir:
(Cette ligne remplace simplement le
SET totallines=200
ligne dans le script ci-dessus.)La méthode a un petit défaut: si le fichier se termine par une ligne vide, le résultat sera le nombre réel de lignes, moins un. Si vous avez besoin d'une solution de contournement (ou tout simplement envie de jouer en toute sécurité), vous pouvez utiliser la méthode décrite dans cette réponse.
2) le format est de l'ordre <br/> par exemple: entrée d'en-tête 1<--ici a onglet format délimité--><--d'ici est délimité onglet format - > en-tête 2<--ici a onglet format délimité--><--d'ici est délimité onglet format - > en-tête 3<--ici a onglet format délimité--><--ici a onglet format délimité--> détails 1 2 sortie: 1 en-tête<--délimités par des tabulations est manquant--><--délimités par des tabulations est manquant--> en-tête 2<--délimités par des tabulations est manquant--><--délimités par des tabulations est manquant--> en-tête 3<--délimités par des tabulations est manquant--><--délimités par des tabulations est manquant--> détails 1 2 </pre>
J'ai testé le script de trop et de ne pas faire d'erreurs. Quant à votre question n ° 2... eh Bien, à l'aide d'un script batch pour traiter un fichier avec une telle offre de contenu est, comme tondre une pelouse avec une moissonneuse-batteuse: possible, mais il faut très approfondie des ajustements. J'ai re-testé le script et en effet, elle supprime fin des caractères de tabulation. Jusqu'à présent, je n'ai aucune idée de comment contourner cela. Quelqu'un d'autre pourrait. Ou peut-être vous devriez envisager d'utiliser d'autres outils. Vous pouvez également tenter votre chance au super-utilisateur.
article 1 - qui n'ont d'erreur c'est le script. @ECHO OFF <br> SET origfile="C:\Documents et Settings\user\Desktop\test1\before.txt" <br> SET tempfile="C:\Documents et Settings\user\Desktop\test1\after.txt" <br> SET insertbefore=4 <br> FOR /F %%A IN ('FIND /C /V "" ^<%origfile%') DO SET totallines=%C%<br> <%origfile% (FOR /L %%i IN (1,1,%totallines%) DO ( <br> SETLOCAL EnableDelayedExpansion <br> SET /P L= <br> IF %%i==%insertbefore% ECHO( <br> ECHO(!L! <br> ENDLOCAL <br> )<br> ) >%tempfile% <br> DEL %origfile% <br> RENOMMER %tempfile% %origfile% <br> pause <br>
Aujourd'hui, je vois, merci. S'il vous plaît changer les deux dernières lignes du script de mise à jour de réponse. Le problème était, le deuxième argument de la commande RENOMMER doit être juste un nom, sans chemin.
OriginalL'auteur Andriy M
Supposons que vous souhaitez insérer une ligne de texte (et non pas une ligne vide):
OriginalL'auteur user2746443