2017-10-20 18 views
0

J'essaye de faire la concaténation simple de chaîne de nom de fichier par la boucle mais d'une façon ou d'une autre cela ne fonctionne pas. Été essayer de le chercher dans le débordement de la pile, mais la solution ne fonctionne pas vraiment.batchscript concaténer la chaîne du nom de fichier à travers pour les boucles

voici mon code:

setlocal EnableDelayedExpansion 
set str= 
for /r %%i in (*) do (
    set str=%str%'%%i' 
) 
echo %str% 
endlocal 

Mon fichier Répertoire est C: \ dir. Les fichiers internes sont juste fichier1.txt, fichier2.txt.

J'espère que cette sortie pour %str%: 'C:\dir\file1.txt','C:\dir\file2.txt' mais ma sortie se révèle être ceci: %str%: 'C:\dir\file2.txt'. Il ne sort que le dernier fichier du répertoire.

Répondre

0
set str=!str!,'%%i' 

puis

echo %str:~1% 

Voir tout nombre de SO articles sur delayed expansion pour la raison.

Chaque élément individuel est ajouté à la liste après une virgule, de sorte que le :~1 utilise par lots substringing à echo la chaîne, en commençant par le caractère 1ème (où il commence au caractère 0e)