2016-03-26 17 views
-1

değişkenine ayarlamaya çalışıyorum Bu programı çalıştırmaya çalıştığımda, değişken sağa ayarlanmaz. Dosya yerini bir değişkene ayarlamak ve ekrana yazdırmak zorunda kaldıktan sonra bu şekilde var mıdır.Bir fonksiyonun sonucunu

@echo off 
for %%a in (d) do if exist "%%a:\" dir /b /s /a-d "%%a:\gm_construct.bsp" set p=%%~dpnxa 
pause 
+2

: (: ' tek tırnak tür edin) koduna

for /f "delims=" %%i in ('dir /b /s /a-d "%%a:\gm_construct.bsp"') do set p=%%~dpnxi 

entegre:

bir komutun çıktısını almak için, başka for gerek Hangi değişken doğru ayarlanmadı? Şu anda ayarlanmış olan nedir ve neye ayarlanmasını istiyorsunuz? – Ruslan

+0

Yukarıdaki koddaki p değişkeni. Kodumu başka yerlerde kullanmaya çalıştığımda, işe yaramıyor. Dosyanın dosya konumuna değil, tam olarak nasıl yapılacağına emin değilim ve ne ayarlandığına dair bir fikrim yok. –

+2

Yani 'dir' komutunun çıkışına ayarlamak ister misiniz? Kodun tüm diğer bölümlerinin çalıştığını test ettiniz mi (yani dosyayı bulduğunda "dir" komutunu çalıştırıyor)? – Ruslan

cevap

3

kodunuzu yapar:

dir /b /s /a-d "%%a:\gm_construct.bsp" set p=%%~dpnxa 

tüm dosyaları listeler "%%a:\gm_construct.bsp" ve set adlı tüm dosya ve dosyaları adlı p=%%~dpnxa

Ne (Bence) yapmak istediğiniz:

dir /b /s /a-d "%%a:\gm_construct.bsp" 

vedeğişkenine çıktı olarak ayarlayın

@echo off 
for %%a in (d) do (
    if exist "%%a:\" (
    for /f "delims=" %%i in ('dir /b /s /a-d "%%a:\gm_construct.bsp"') do set p=%%~dpnxi 
) 
) 
pause 

duraklama

+0

Dosya adını, yoldan sonra vermesi haricinde çalışır, sadece herhangi bir yardımda bulunduğu klasöre ayarlamasını istiyorum. –

+0

'% ~ dpnxi', ** d ** rif, ** p ** ath, ** n ** ame ve e ** x **' %% i 'gerginliği anlamına gelir. Yani muhtemelen '%% ~ dpi' istiyorum – Stephan

+0

Teşekkürler bunu düşünmeliydim. Bunu anlamaya çalışırken 2 saat harcadım. –

İlgili konular