ฉันต้องการแยกหมายเลขรุ่นจากบรรทัดซอร์ส C # นี้โดยใช้ไฟล์แบตช์ MSDOS:
public const int major_version = 2;
ความพยายามของฉัน:
:: Extract the number-token from the major version string.
:: The number-token has a semicolon appended.
for /F "tokens=6" %%a in ( str_Major_REV) do set number_token=%%a
ซึ่งจะส่งผลในตัวแปรเป็นnumber_token
2;
ฉันจะลบได้';'
อย่างไร
{The ';'
ถูกใช้เป็นตัวคั่นบรรทัดโดยdelims
พารามิเตอร์}
พื้นหลัง:
ไฟล์แบตช์รันโดย Jenkins build server ฉันต้องการแบตช์ไฟล์เป็น:
- แยกจำนวน
- เพิ่มจำนวนและบันทึกเป็นตัวแปรไฟล์สภาพแวดล้อม / แบตช์
- แทนที่หมายเลขเดิมด้วยหมายเลขที่เพิ่มขึ้น
- ใช้หมายเลขในชื่อโฟลเดอร์
- ใช้หมายเลขในฉลาก / เวอร์ชันของระบบการจัดการรหัส
รายการ 4 และ 5 เป็นเหตุผลที่ฉันต้องการลบเครื่องหมายอัฒภาคออกจากโทเค็นตัวเลข
สภาพแวดล้อม
Windows Server 2008
วิธีที่ง่ายกว่าคือสำหรับ
—
LotPings
for %%A in (%str_Major_Rev%) do @set "number_token=%%A"
Space Loop , semocolon, comma, tab เป็นตัวแยกอาร์กิวเมนต์ทั้งหมด ลูปจะตั้งค่ารายการทั้งหมด แต่สุดท้ายจะยังคงอยู่
delims
ที่มีเครื่องหมายอัฒภาคทำงานได้ดีสำหรับฉันใน Vista ซึ่งควรเป็นเช่นเดียวกับปี 2008 และไม่ใช่ 'ตัวคั่นบรรทัด' (2) ในการลบอักขระตัวสุดท้าย%number_token:~0,-1%
(3) เพื่อลบเครื่องหมายอัฒภาคได้ทุกที่%number_token:;=%