Belirli bir değere dayalı dizgiden pay al


0

Takip koduna sahibim:

SET PATH=\\dc01\intern\Product\NightlyBuild\Reg\Reg_20171207.1\out\site
OR
SET PATH=\\dc01\intern\Product\Release\ex\17.12\site

Şimdi değişkenlerden aşağıdaki değerleri almak istiyorum:

PATH_trimmed = Reg\Reg_20171207.1
OR
PATH_trimmed = 17.12

Dolayısıyla her yol için değişkenden farklı bir bölüm çıkarılmalıdır. Bu yüzden örneğin , istenen değeri almak için " NightlyBuild " veya " Release " kelimesini arayan bir metoda ihtiyacım var . Bunu gibi sol dize yöntemlerini kullanarak yapmaya çalıştım:

%path:~0,4%

Fakat bu işe yaramıyor. Biri bana doğru yönde rehberlik edebilir mi?

Yanıtlar:


1

En kolay yol PATHdizeyi ayrıştırmaktır : -

@echo off
rem SET PATH=\\dc01\intern\Product\NightlyBuild\Reg\Reg_20171207.1\out\site
rem SET PATH=\\dc01\intern\Product\Release\ex\17.12\site
rem for /f "tokens=4-6 delims=\" %%f in ("%path%") do echo %%f:%%g:%%h
for /f "tokens=4-6 delims=\" %%f in ("%path%") do (
    if %%f==NightlyBuild set PATH_trimmed=%%g\%%h
    if %%f==Release set PATH_trimmed=%%h
)
rem echo PATH_trimmed=%PATH_trimmed%

O böler: Bu harici programların kullanımını önler PATHher birinde \boş alanları görmezlikten ayrı değişkenlere, bu nedenle ilk önemli alandır dc01, fakat sadece ayıklanır altıncı alanlara dördüncü, için f, gve hsırasıyla.

Karşılaştırma yaparak %%f, uygun değer PATH_trimmeddeğişkene ayarlanır . Teknik kolayca diğer PATHformatlara genişletilebilir .

Yorumlanan çizgiler test amaçlı kullanılmıştır.


harika bir açıklama ile tam olarak istediğim şey bu! Çok teşekkür ederim!
Rotan075
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.