Pencere Toplu İş Dosyası - Geçerli klasör adı kesiliyor


1

Win7 x64 kutumda, geçerli klasör adını bulmak için bu komutu çalıştırdığımda

for %* in (.) do echo %~n*

Alfa karakterli klasörler için çalışır. Ancak, yalnızca sayısal değerler içeren klasör adları için son bölüm kesiliyor.

Örneğin

C:\temp\2.4.0> for %* in (.) do echo %~n* # outputs 2.4
C:\temp> for %* in (.) do echo %~n*       # outputs temp

Bu ilginç davranışın neden olduğundan emin değil. Yalnızca geçerli klasör adını bulmanın başka bir yolu var mı? "Current" ile yarasa dosyasının çalıştırıldığı klasörü kastediyorum.


~ n ne için? Doğru hatırlıyorsam ~ keser.
Wutnaut

@Wutnaut Toplu iş parametrelerinin bir listesi . ~nbir dosya adına genişler
nixda

klasörler için aynı şekilde davranıyor mu? ya da p ~ istiyor mu?
Wutnaut

Yanıtlar:


4

"2.4.0" gibi bir klasör adına sahip olan Windows, "2.4" adını ad olarak ve ".0" uzantısını olarak değerlendirir.

Yani, adı da dahil olmak üzere tam adını istiyorsanız, o zaman kullanmanız gerekir %~nx*.

Bu arada, çok garip görünen kod. *FOR değişkeni olarak kullanmak , ortalama bir kişiyi ortadan kaldıracaktır.


Ah! Bu açıklar! Tek değişkenli adı işaret ettiğiniz için teşekkür ederiz. Kasıtlı değildi ama şimdi sıradaki kişiyi şaşırtmanın bir yolunu biliyorum (eğer istersem);)!
Şef,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.