2009-06-30 8 views
0

J'ai un fichier texte qui contient une liste de noms de fichiers, moins l'extension, que j'ai besoin de créer. Je veux exécuter une commande de fichier batch rapide ou un script VBS qui parcourra la liste et ensuite créer un fichier basé sur le nom.Lire un fichier texte ligne par ligne dans un script batch ou VBS?

Le fichier texte ressemble à ceci:

PRXI0000466 
PRXI0000564 
PRXI0000636 
PRXI0000681 
PRXI0001092 

Je veux faire une boucle à travers chaque ligne, puis faire une « echo . > %file%.txt » (en supposant %file% contient la ligne du fichier texte).

Quelqu'un peut-il me montrer un moyen rapide de faire cela?

Répondre

5

Eh bien, c'est un one-liner cmd:

for /f %i in (textfile.txt) do @echo . > %i.txt 

ligne par ligne for /f boucles hrough un fichier texte, et de faire tokenizing sur la manière aussi bien. Heureusement pour vous, il n'y a pas d'espaces dans vos lignes, sinon cela aurait appelé quelque chose comme "delims=" là aussi.

Ceci placerait une seule ligne contenant un point suivi d'un espace dans chaque nouveau fichier. Si vous voulez juste une ligne vide, vous devrez utiliser echo.>%i.txt. Si vous voulez juste créer chaque fichier (les geeks UNIX pourraient simplement utiliser touch (1)), vous pouvez utiliser copy NUL %i.txt. Si vous voulez l'utiliser dans un fichier batch (et non directement depuis la ligne de commande), vous devrez utiliser %%i au lieu de %i.

Je pense que vous voulez vraiment créer des fichiers vides, de sorte que les éléments suivants devraient faire l'affaire:

for /f %i in (textfile.txt) do @copy nul %i.txt 
5

Essayez-vous simplement de créer des fichiers texte vides? Si oui, ce .vbs script faire

Set fso = CreateObject("Scripting.FileSystemObject") 
Set listFile = fso.OpenTextFile("list.txt") 
do while not listFile.AtEndOfStream 
    fName = listFile.ReadLine() 
    fso.CreateTextFile(fName + ".txt") 
loop 
0

Le fichier texte contient t.txt:

PRXI0000466 
PRXI0000564 
PRXI0000636 
PRXI0000681 
PRXI0001092 

Cette boucle devrait résoudre votre problème .

for /f %%a in (t.txt) do %%a > %%a.txt 
Questions connexes