2010-04-28 21 views

cevap

103

.exe'u %~dp0 ile aramayı deneyin, şu şekilde: %~dp0MyProgram.exe.

%0, .bat adlı dosyanın tam yolunu içerir. ~dp, \ numaralı izler dahil olmak üzere sürücü ve yolu almayı beklemektedir.

+2

+1 oy sadece google arama bu linki bulundu - http://weblogs.asp.net/whaggard/archive/2005/01/28/get-directory-path-of-an-executing-batch-file. aspx – house9

+0

İyi bir açıklama, teşekkürler! – enderland

+12

Patrick Cuff'ın yukarıdaki yanıtı işe yarar, ancak dizin yolunun bir kısmı adında boşluklar varsa başarısız olur. Bunu aşmak için, .exe çağrısının etrafında çift tırnak işareti koymanız gerekir. "% ~ dp0MyProgram.exe" –

0

garip görünüyor? Ben bazen pencerelerde çalışmamış ama

Bir ./

./program.exe

gerçekten olmalıdır hiçbir fark ile lider çalıştın? Belki de yarasa, C: \ Windows bağlamından yürütülür ya da partneriniz bir noktada başka bir dirke cd yaptı mı?

+0

Yani. \ (Yani, ters eğik çizgi). –

+0

Ben partiyi çalıştırdığımda başka bir dizinden çalıştırıldığını düşünüyorum. –

+1

Belki de sorum şu: "Bir toplu iş dosyasına çift tıklayıp, aynı dizinde nasıl yürütülür?" –

11

Bunu, çalışma dizini pushd komutunu kullanarak değiştirerek çözdüm ve geri yükleme, popd kullanarak komut dosyasının sonunda yer alıyor. Bu şekilde, çalışma dizininin her zaman yarasa dosyasının konumuyla aynı olduğunu varsayabilirsiniz.

pushd %~dp0 
ProgramInSameFolderAsBat.exe 
popd 
İlgili konular