web-dev-qa-db-fra.com

Moyen le plus simple d'ajouter un texte au début d'un autre fichier texte dans la ligne de commande (Windows)

Quelle est la façon la plus simple d'ajouter un texte au début d'un autre fichier texte dans la ligne de commande (Windows)?

28
dr. evil
echo "my line" > newFile.txt
type myOriginalFile.txt >> newFile.txt
type newFile.txt > myOriginalFile.txt

Non testé. Double >> signifie 'ajouter'

45
DarkwingDuck

Une autre variation sur le thème.

(echo New Line 1) >file.txt.new
type file.txt >>file.txt.new
move /y file.txt.new file.txt

Avantages par rapport aux autres réponses publiées:

  • nombre minimal d'étapes
  • aucun fichier temporaire restant
  • les parenthèses empêchent les espaces de fin indésirables en première ligne
  • la commande de déplacement remplace "instantanément" l'ancienne version par la nouvelle
  • le fichier d'origine reste inchangé jusqu'au dernier instant où il est remplacé
  • le contenu final n'est écrit qu'une seule fois - potentiellement important si le fichier est énorme.
16
dbenham

La séquence suivante fera ce que vous voulez, en ajoutant la ligne "new first line" à la file.txt fichier.

ren file.txt temp.txt
echo.new first line>file.txt
type temp.txt >>file.txt
del temp.txt

Notez la structure de l'écho. "echo. "vous permet de mettre des espaces au début de la ligne si nécessaire et de joindre le" > "le caractère de redirection garantit qu'il n'y a pas d'espaces de fin (sauf si vous les voulez, bien sûr).

8
paxdiablo

Les éléments suivants fonctionneront également:

echo "my line" > newFile.txt
type newfile.txt myOriginalFile.txt > myOriginalFile.txt

Dans la première ligne, vous écrivez ma ligne dans newfile.txt. Dans la deuxième ligne, vous remplacez le texte de myOriginalFile.txt en le remplaçant par le texte de newfile.txt et myOriginalFile.txt, créant un nouveau myOriginalFile.txt qui contient les deux.

5
anonperson

Si la première partie de la ligne peut être triée, comme la date/l'heure, utilisez la commande SORT/R pour placer les entrées les plus récentes en haut du fichier. Le texte suivant placera un horodatage sous la forme "AAAA-MM-JJ HH: JJ: SS AM/PM" au début de chaque ligne:

echo %DATE:~-4%-%DATE:~7,2%-%DATE:~4,2% %TIME% "my text line" >> myOriginalFile.txt
sort /R myOriginalFile.txt /O myOriginalFile.txt

Cependant, à mesure que les fichiers deviennent très volumineux, cette méthode (ainsi que celles ci-dessus) devient lente. Envisagez de trier uniquement lorsque cela est nécessaire au lieu de chaque entrée - ou utilisez un autre langage de script/programmation

2
user7351993

Via PowerShell;

@("NEW Line 1","NEW Line 2") + (Get-Content "C:\Data\TestFile.txt") | Set-Content "C:\data\TestFile.txt"
0
Madison Courto

Si vous souhaitez traiter des fichiers plus volumineux, la solution acceptée devient assez lente. Ensuite, il est plus rapide d'utiliser la copie avec un "+"

echo "my line" > newFile.txt
copy newFile.txt+myOriginalFile.txt combinedFile.txt
move /Y combinedFile.txt myOriginalFile.txt
del newFile.txt
0
Thomas H. Schmidt