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
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.
C programı bir kaza yapmak için en kol...
Objective-C boş bir dize kontrol etmek...
WPF dize bir seçilebilir yapmak için b...
Yeni bir dize oluşturmadan Ruby bir di...
Dize bayt dizisi dönüştürmek için en i...