2010-10-01 6 views
0

Je prends cette approche pour ajouter une ligne SOME TEXT TO BE ADDED au début d'un fichier existant. Est-il possible de spécifier le numéro de ligne exact pour ajouter le nouveau texte. Par exemple, avant la dernière ligne (et ajouter un saut de ligne) ou après la 3ème ligne (et ajouter un saut de ligne)bat ajoute une ligne à un numéro de ligne spécifique

copy original.txt temp.txt 
echo.SOME TEXT TO BE ADDED>original.txt 
type temp.txt >>original.txt 
del temp.txt 

Répondre

4

Vbscript

strLineNum = WScript.Arguments(0) 
strAddText= WScript.Arguments(1) 
strFileName = WScript.Arguments(2) 
Set objFS = CreateObject("Scripting.FileSystemObject") 
Set objFile = objFS.OpenTextFile(strFileName) 
Do Until objFile.AtEndOfStream 
    linenum=objFile.Line 
    strLine = objFile.ReadLine 
    If linenum = CInt(strLineNum) Then 
     WScript.Echo strAddText 
    End If 
    WScript.Echo strLine 
Loop  
objFile.Close 

Utilisation:

C:\test> cscript //nologo myscript.vbs 2 "text to insert" file >temp 
C:\test> ren temp file 
+0

Le l'utilisation est très simple. Enregistrez le bouquet de code en tant que fichier, tel que myscript.vbs. Utilisez ensuite la commande cscript comme indiqué. Si votre administrateur a désactivé vbscript, vous devez revenir au traitement par lots. Vbscript est installé par défaut, donc pas de problèmes pour les distribuer. MAIS puisque vous êtes un développeur PHP, pourquoi ne pas le faire avec PHP? Après tout, PHP est bien meilleur pour le traitement de fichiers que le traitement par lots et il peut en faire beaucoup plus. – ghostdog74

+0

@ user131527 Ok, je comprends maintenant, je vais essayer. En fait PHP ne fonctionnerait pas dans ce cas parce que je fais des changements d'installation liés à la variable d'environnement Windows PATH et juste d'autres tâches liées à l'installation, donc c'est en dehors de la portée du script PHP lui-même. – Berming

+0

Je n'ai pas de problème cependant. – ghostdog74

Questions connexes