ฉันต้องการที่จะตรวจสอบว่าตัวอักษรตัวสุดท้าย (s) ของตัวแปรสภาพแวดล้อมมีหรือ\
.exe
ฉันจะทำสิ่งนี้ใน Windows XP SP3 ได้อย่างไร
ฉันต้องการที่จะตรวจสอบว่าตัวอักษรตัวสุดท้าย (s) ของตัวแปรสภาพแวดล้อมมีหรือ\
.exe
ฉันจะทำสิ่งนี้ใน Windows XP SP3 ได้อย่างไร
คำตอบ:
วิธีใช้สตริงย่อย:
set _parm1=foo.exe
if [%_parm1:~-1%]==[\] echo ends with \
if /i [%_parm1:~-4%]==[.exe] echo ends with .exe
คุณแทนที่หมายเลขก่อนหน้าเครื่องหมาย% เพื่อเปลี่ยนแปลงจำนวนอักขระที่ตรวจสอบที่ส่วนท้ายของสตริง
อย่าทำเพื่อสุขภาพจิตของคุณเอง เปลี่ยนเป็น PowerShell, Perl, Python, C # ... แม้ VBScript จะยอมรับได้
:: call the subroutine defined below...
call :check "%somevariable%"
:: and check its exit code
if %ERRORLEVEL% equ 0 (
echo Yes
) else (
echo No
)
goto :eof
:check
if "%~nxi"=="" exit /b 0
:: do a case-insensitive check because Windows would accept ".EXE"
:: and ".Exe", so we should too.
if /i "%~xi"==".exe" exit /b 0
exit /b 1
สำหรับการเปรียบเทียบรหัส Python ที่เทียบเท่า:
if somevar.endswith("\\") or somevar.lower().endswith(".exe"):
print("Yes")
else:
print("No")
คุณกำลังพยายามทำสิ่งนี้โดยใช้โปรแกรมหรือเพียงครั้งเดียว?
หากคุณต้องการเห็นตัวแปรสภาพแวดล้อมหนึ่งครั้งการพิมพ์echo %variablename%
จะใช้งานได้
หากคุณพยายามที่จะทำโดยทางโปรแกรมคุณอาจต้องใช้ VBScript หรือสิ่งที่คล้ายกันเพื่อทำการจัดการสตริงที่ต้องการ ควรมีตัวอย่างในMS Script Repositoryที่สามารถให้คุณเริ่มต้นได้โดยขึ้นอยู่กับสิ่งที่คุณต้องการทำกับตัวแปรเมื่อคุณแยกมันออก