2010-11-15 5 views
0

J'essaie de créer un fichier séquentiel qui parcourt une liste de fichiers JPG/PNG dans un dossier et crée des sous-répertoires en utilisant le premier 2 caractères de ces noms d'image. Après avoir créé les sous-répertoires, il va ensuite déplacer l'image dans le bon sous-dossier. Par exemple, ABC.jpg et DEF.png créeront AB et DE, et déplaceront ABC.jpg dans AB et DEF.png dans DE.Création de sous-répertoires en utilisant les 2 premiers caractères d'un nom de fichier dans un fichier batch

Le problème que j'ai est d'extraire les 2 premiers caractères et de créer les sous-répertoires. Voici le code approprié je jusqu'à présent:

for %%A in (*.jpg,*.png) do (

    set _xx=%%A 

    md %_xx:~0,2% 
) 

[Gestion des erreurs/duplication et le déplacement de fichier lui-même a été supprimé pour plus de clarté]

Faisant écho à la _xx variable indique aucune valeur qui lui est assignée, Cependant, en écho sur %% A donne le nom de fichier correct.

exécution de ce script crée en fait deux sous-répertoires appelés '2' et '0 ~'

Toutes les suggestions?

Répondre

2

Vous devez utiliser

setlocal enabledelayedexpansion 

en haut du fichier, puis au lieu de

md %_xx:~0,2% 

utilisation

md !_xx:~0,2! 
+0

merci parfait - qui fait le travail – mecsco

Questions connexes