Windows batch DE commande de l'onglet délimiteur
Je suis en train d'utiliser les commandes Windows POUR la commande.
Comment puis-je spécifier un caractère de TABULATION comme séparateur? La valeur par défaut est l'espace et l'onglet, mais je veux onglet.
J'ai essayé cela, mais il ne fonctionne pas:
FOR /F "tokens=3 delims=^T" %i in (test.txt) do @echo %i
Il semble être le fractionnement sur le T de caractères au lieu d'un onglet. J'ai aussi essayé un littéral collé dans l'invite de commande, mais j'obtiens une erreur de syntaxe.
OriginalL'auteur jterrace | 2012-12-05
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin d'un littéral caractère de tabulation dans le prix de la chaîne d'options. La traduction littérale de l'ONGLET fonctionne à la fois dans un fichier batch et sur la ligne de commande.
Si vous essayez de taper un ONGLET dans la ligne de commande, nom du fichier achèvement ne peut être contrecarrer vos efforts. Vous pouvez désactiver la terminaison des noms en utilisant
CMD /F:OFF
. Vous serez alors en mesure d'entrer un littéral caractère de TABULATION.Vous pouvez également rencontrer des problèmes en essayant de saisir un ONGLET dans un script batch en fonction de l'éditeur de texte que vous utilisez. Un programmeur éditeurs ont des paramètres qui automatiquement convertir les Tabulations en espaces. Vous devrez vous assurer que votre éditeur ne fait pas que.
Donc, vous avez juste besoin de changer votre
"tokens=3 delims=^T"
chaîne d'utiliser un ONGLET littérale au lieu de^T
OriginalL'auteur dbenham
Ngaaa.. parler d'un après-midi, des maux de tête...
J'ai eu le même problème aujourd'hui... j'ai besoin d'analyser des lignes FOR /F où chaque ligne
a un certain nombre de phrases (chacun avec des espaces, peut-être) à chaque phrase
délimité par des Tabulations.
Mon problème est que mon entreprise les normes de codage (même pour les fichiers de commandes) interdit
réelle des caractères de TABULATION dans le code source (à nos rédacteurs interdire de mettre les Onglets
dans, et notre Version ctrl outils de révoquer l'Enregistrement de n'importe quel fichier texte avec des Onglets
ou WTR [blanc-pour-le-droit].)
Donc, c'est un hack, mais il fonctionne sur XP (blocage de la tête... une honte profonde...)
Cela fonctionne sur XP, mais je n'ai pas vérifié Win7 ou Win7[WoW64].
Temporaire contenu de RegCPUid.Tmp est UNE LIGNE qui ressemble à
La commande FOR simplement une pince de la solitaire ONGLET entre les deux "R"s de
IDENTIFICATEUR et REG_SZ et définit la variable d'environnement ONGLET.
Alors mon script peut faire tous les POUR /F en boucle, il veut UNIQUEMENT avec l'onglet
caractère délimiteur (et non PAS un espace) par...
Tout cela me permet de ne PAS avoir tout codé en dur de caractères de TABULATION dans le fichier de commandes.
-dave
OriginalL'auteur djb
Il apparaît qu'un littéral caractère de tabulation fonctionne, mais vous devez démarre le
cmd
processus avec/F:ON
. Sans cela, même le copier-coller d'un caractère de tabulation ne fonctionne pas.OriginalL'auteur jterrace
Selon ce site http://ss64.com/nt/for_f.html , le délimiteur par défaut est la tabulation, afin de l'essayer sans delims paramètre.
jterrace est correcte, la valeur par défaut est
<tab><space>
. Il suffit de taperHELP FOR
à partir de la ligne de commande et de lire la description de la DELIMS option.OriginalL'auteur calmond