2008-10-29 12 views

Répondre

3

Si vos utilisateurs une liste de mots sur une ligne dans un fichier texte, séparés par des espaces, par exemple:

one two three four 

Créer un fichier batch SpaceToComma.bat comme suit:

@echo off 
setlocal 
for /F "tokens=* delims= " %%a in (%1) do @set data=%%a 
echo %data: =,% 
endlocal 

Ensuite, exécutez, vous aurez e Les mots séparés par des virgules. c'est ce que tu veux?

C:\>SpaceToComma.bat data.txt 
one,two,three,four 

Si vous avez un fichier sur plusieurs lignes, cela fera:

donnees.txt

one two three four 
five six seven 

SpaceToComma.bat

@echo off 
setlocal 
for /F "tokens=* delims= " %%a in (%1) do @call :processaline %%a 
endlocal 
goto :eof 
:processaline 
setlocal 
set data=%* 
echo %data: =,% 
endlocal 
goto:eof 

Sortie

C:\>SpaceToComma.bat data.txt 
one,two,three,four 
five,six,seven 

(Il y a probablement une manière intelligente de faire ceci sans le sous-programme, en utilisant les! Données! syntaxe pour l'expansion de variable retardée, mais je ne pouvais pas l'obtenir pour fonctionner avec la syntaxe de substitution.)

Si ce n'est pas ce que vous voulez, alors expliquez et je peux essayer de vous aider.

(PS: je prends plaisir à l'aide des fichiers batch où les gens insistent sur le fait qu'il ne peut pas être fait.)

+0

que vous vouliez dire 'spacetocomma.bat' –

+0

Merci PA. Réponse corrigée. (Ravi de voir quelqu'un le lire aussi attentivement.) –

+0

@RichardA J'ai utilisé SpaceToComma.bat dans un fichier csv de 2 Go et j'ai bien travaillé. Cependant, pour chaque espace, il met une virgule, i. e., 2014 12 1 est devenu 2014,, 12,, 1. Existe-t-il un moyen de reconnaître différents espaces et de les remplacer par une seule virgule? (par exemple, de 2014 12 1 à 2014, 12,1). –

0

Eh bien, cela dépendra beaucoup de la façon dont vous obtenez les données, mais vous pourrez peut-être trouver quelque chose avec une construction For-Do. Faites en sorte que le séparateur de champs soit un espace puis reconstruisez la chaîne dans le do avec un, entre chaque jeton. Puis-je suggérer un langage de script plus robuste? Vous devriez avoir VBScript sur à peu près n'importe quel arc de fenêtres relativement moderne.

Questions connexes