2009-09-15 8 views
5

İlgili:
How to list the elements of the path in a batch file?
How does FOR work?Bir öğeyi PATH'den kaldırmak için .bat veya .cmd dosyasını nasıl yazarsınız?

nasıl yolundan bir öğe kaldırmak için bir toplu iş dosyası veya CMD dosyasını yazardınız? Bu incelikle ele olmalıdır: durumunda

  • farklılıkları bunu bile yapar
  • shortnames ve uzun isimler

Bunu kullanarak tr.exe yaptık ama yavaş ve karmaşık olduğunu ve geçici dosyaları kullanır, daha karmaşık.

setlocal 
set tpath="" 
set _path="%PATH:;=" "%" 
for %%p in (%_path%) do (
    call :KeepIfNotEqual %%p %elementToRemove% 
) 
endlocal & set path=%tpath% 

...% elementToRemove% kaldırmak için yol öğedir:

Ben cevap böyle bir şey olduğunu düşünüyorum . o 2 argüman (elementToRemove) için eşit değil ise tpath ilk argüman, dizin adları onları normalleştirir ve ekler - KeepIfUnique iki bağımsız değişken bir altprogram olması gerekir.

ben tr.exe ile yapabilirsiniz, söylediği gibi, ama pencere cmd.exe kabukta sadece dahili komutları ile yapabilirsiniz?

DÜZENLEME: Sanırım aşağı doğru anladığınızda, soru, cmd.exe dosyasında case-conversion nasıl yapılır?

+0

Windows 7, hayatınızı çok daha kolay bir hale getirecek olan PowerShell 2'yi içeriyor ... – TrueWill

cevap