SORU
11 Mart 2009, ÇARŞAMBA


Bir toplu iş dosyasında bir dize yapmak için en iyi yolu nedir?

Şu anda çalışan toplu iş dosyasının adını almak istiyorumolmadandosya uzantısı.

this link, teşekkür ederim dosya adı varileuzantısı... ama bir toplu iş dosyasında bir dize yapmak için en iyi yolu nedir?

Veya dosya için başka bir yol g/Ç uzatma var mı?

Güvenli Bu senaryoda 3 harfli uzantıları varsayalım.

CEVAP
11 Mart 2009, ÇARŞAMBA


Sadece toplu dosya almak için en kolay yolu sadece %~n0 kullanmak olacaktır.

@echo %~n0

çıkış adı (uzantı olmadan) çalışmakta olan toplu iş dosyası altyordam call tarafından verilen idam (sürece). Bu tam listesini “özel” yol adları için oyuncu değişikliği yardımı en sonunda help for ile bulunabilir:

Ayrıca, değişim İÇİN değişken başvuruları geliştirilmiştir. Şimdi aşağıdaki isteğe bağlı kullanabilirsiniz kullanımı:

%~I         - expands %I removing any surrounding quotes (")
%~fI        - expands %I to a fully qualified path name
%~dI        - expands %I to a drive letter only
%~pI        - expands %I to a path only
%~nI        - expands %I to a file name only
%~xI        - expands %I to a file extension only
%~sI        - expanded path contains short names only
%~aI        - expands %I to file attributes of file
%~tI        - expands %I to date/time of file
%~zI        - expands %I to size of file
%~$PATH:I   - searches the directories listed in the PATH
               environment variable and expands %I to the
               fully qualified name of the first one found.
               If the environment variable name is not
               defined or the file is not found by the
               search, then this modifier expands to the
               empty string

Değiştiriciler almak için kombine edilebilir bileşik tespit edildi

%~dpI       - expands %I to a drive letter and path only
%~nxI       - expands %I to a file name and extension only
%~fsI       - expands %I to a full path name with short names only

Tam olarak sorunun cevabı, ancak: Dizeleri :~start,length gösterim kullanılarak yapılır

%var:~10,5%

ortamında pozisyonu 10 5 karakter açacaktır değişken %var%.

NOT:Dizeleri Endeksi sıfır tabanlı, ilk karakter konumunda, 0, 1, vb ikincisi.

%0, %1, vb gibi bağımsız değişkenlerin alt dizeleri almak için. normal bir ortam değişkeni set kullanarak onları atamak için ilk vardır:

:: Does not work:
@echo %1:~10,5

:: Assign argument to local variable first:
set var=%1
@echo %var:~10,5%

Sözdizimi daha güçlü

  • %var:~-7% %var% son 7 karakter ayıklar
  • %var:~0,-4% dosya uzantısı da seni kurtarsın diye son dört dışında tüm karakterler (süresinden sonra üç karakter[.]farz)özü olur.

Bu sözdizimi hakkında ayrıntılı bilgi için help set bkz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jason Rosolowski

    Jason Rosolo

    25 EKİM 2006
  • jpmkm1

    jpmkm1

    4 NİSAN 2008
  • kndx

    kndx

    11 Mart 2006