2010-07-13 25 views
6

Tüm dosyaların bir listesini (mutlak yolları dahil) boşluklarla ayrılmış bir değişkene almak istiyorum. Google-fu'm bu konuda zayıf görünüyor, çünkü konulara girmeye devam ediyorum.Toplu iş dosyası - Dosyaların bir değişkene yazılması

% baseDir% dizininde depolanmış bir temel dizinim var ve dosyaları (alt dizinleri de dahil olmak üzere tekrar etmek için değil) ayrıştırmak istiyorum. Bahsettiğim gibi, bunun bir listeye girmesi gerekiyor. Kullanabileceğim güzel bir kısayol olduğunu düşünürdüm, ama bir döngü ve birleştirme işlemi de hile yapardı. aracılığıyla

setlocal enabledelayedexpansion enableextensions 
set LIST= 
for %%x in (%baseDir%\*) do set LIST=!LIST! %%x 
set LIST=%LIST:~1% 

Aslında, set komut için yardım da bu çok örnek bulmak, erişilebilir:

echo fileList 

C:\file1.c C:\file2.c C:\file3.c 

cevap

12

Oldukça basit:

İdeal olarak, böyle bir şey olurdu help set, naif yaklaşımın neden çalışmayacağını açıklayan bir açıklama ile tamamlandı.

dosyaları (yerine tüm) farklı bir dizi kullanmak için, kolayca joker değiştirebilirsiniz:

for %%x in (%baseDir%\*.c) do set LIST=!LIST! %%x 
+0

basit bir soru, basit bir cevap ... teşekkürler! – espais

+0

@espais: Oldukça yaygın olanı; Sanırım şu ana kadar yaklaşık bir düzine kez yanıtladım ;-) – Joey

+0

@Johannes ... hızlı takip ... Bu parçacığı yalnızca * .c tipi dosyalara ayırmak kolay mı? – espais

İlgili konular