Bir programı otomatikleştirmek için birkaç toplu iş dosyası oluşturmak istiyorum.
Benim sorum toplu iş dosyası oluştururken, geçerli dizin nedir? Dosyanın bulunduğu dizin mi yoksa komut isteminde görünen dizinle mi yoksa başka bir şey mi?
Bir programı otomatikleştirmek için birkaç toplu iş dosyası oluşturmak istiyorum.
Benim sorum toplu iş dosyası oluştururken, geçerli dizin nedir? Dosyanın bulunduğu dizin mi yoksa komut isteminde görünen dizinle mi yoksa başka bir şey mi?
Yanıtlar:
Toplu iş dosyanızın içinden:
%cd%
geçerli çalışma dizinini ifade eder (değişken)%~dp0
toplu iş dosyasının dizininin tam yolunu belirtir (statik)%~dpnx0
ve %~f0
her ikisi de toplu iş dizininin tam yolunu ve dosya adını (statik) belirtir.Ayrıca bakınız: % ~ dp0 anlamı ne ve nasıl çalışır?
.cmd
dosyaya sağ tıklayıp yönetici olarak çalışırken , toplu iş dosyası dizinini eğik çizgi ile %cd%
verir C:\WINDOWS\system32
ve %~dp0
verir.
Bu genellikle toplu iş dosyası başlatılır hangi dizin, ancak bir kısayol toplu iş dosyasını başlarsanız, farklı bir başlangıç dizini verilebilir. Ayrıca, cmd'deyken ve geçerli dizininiz olduğunda c:\dir3
, toplu iş dosyasını yine c:\dir1\dir2\batch.bat
de bu durumda geçerli dizini kullanarak başlatabilirsiniz c:\dir3
.
Bir toplu iş dosyasında, kendi değişkeninizi ayarlayabilseniz de,% cd% geçerli dizin için en sık kullanılan komuttur:
set mypath=%cd%
echo %mypath% (where %mypath% is the current directory that the batch file is sitting in)
Diyelim ki Myprog.exe dosyasını açmak istiyorsunuz. Aynı klasördeyse şu komutu kullanırsınız:
start %mypath%\Myprog.exe
Bu, Myprog'u geçerli klasörden açar.
Diğer seçenek C: 'de AutomatePrograms adlı bir dizin yapmaktır. Ardından, dosyalarınızı bu klasöre aktarırsınız ve ardından aşağıdaki komutu kullanarak açabilirsiniz:
start "" "C:\AutomatePrograms\Myprog1.exe"
start "" "C:\AutomatePrograms\Myprog2.exe"
start "" "C:\AutomatePrograms\Myprog3.exe"
%cd%
, değişkendir, bu nedenle toplu iş dosyasını yönetici olarak Windows Gezgini'nden çalıştırmak C:\WINDOWS\system32
, neredeyse istediğiniz şey değildir. %~dp0
daha tutarlıdır.
Mevcut dizininizde bir dosya açtığınızı varsayalım. Komut şöyle olur:
start %cd%\filename.filetype
Umarım sorunuzu cevapladım.
Bu, toplu iş dosyasını başlattığınız dizindir. Örneğin, toplu işiniz içindeyse c:\dir1\dir2
ve yaparsanız cd c:\dir3
, toplu işi çalıştırın, geçerli dizin olacaktır c:\dir3
.
Sadece 2 sentim. Pendrive'a yerleştirilen toplu iş dosyasından (Windows 7) çağrılırsa aşağıdaki komut başarısız olur:
xcopy /s /e /i %cd%Ala C:\KS\Ala
Ama bu işi yapar:
xcopy /s /e /i %~dp0Ala C:\KS\Ala
%~dp0
%0
geçerli altyordamın adını verebilir, ancak%~dp0
her zaman yürütme toplu iş dosyasının tam yolunu verecektir.