如何确定 Windows XP cmd 变量是否以给定字符串结尾?

如何确定 Windows XP cmd 变量是否以给定字符串结尾?

我想检查环境变量的最后一个字符是否为\.exe。如何在 Windows XP SP3 中执行此操作?

答案1

要使用子字符串:

set _parm1=foo.exe
if [%_parm1:~-1%]==[\] echo ends with \
if /i [%_parm1:~-4%]==[.exe] echo ends with .exe

您可以替换 % 符号前的数字来改变它在字符串末尾检查的字符数。

答案2

为了你自己的理智,不要这么做。改用 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")

答案3

您是否尝试以编程方式执行此操作或仅执行一次?

如果您想查看一次环境变量,输入echo %variablename%即可。

如果您尝试以编程方式执行此操作,则可能需要使用 VBScript 或类似程序来执行所需的字符串操作。应该有一个例子MS 脚本存储库这可以帮助您入门,具体取决于您在隔离变量后想要对变量执行的操作。

相关内容