【问题标题】:Display First and Last string entries stored in a variable using windows cmd.exe [duplicate]使用windows cmd.exe显示存储在变量中的第一个和最后一个字符串条目[重复]
【发布时间】:2021-03-25 09:40:21
【问题描述】:

我有一个变量(MyVar),其中存储了值。例如 -->

MyVar="123, 234, 345, 456"

变量中的每个条目都用逗号分隔,如示例中所示。 我希望能够从这个变量中选择第一个和最后一个条目,即分别为 123456

知道如何使用 windows cmd.exe 实现这一点吗?

谢谢!

【问题讨论】:

  • 您需要首先澄清变量的确切值数据,目前,您的第一个条目似乎是"123,而您的最后一个条目是456"。然后你需要扩展你的代码,这样我们就可以看到你是如何定义变量内容的,你是如何使用它的,以及你想要对列出的第一个和最后一个项目做什么。

标签: windows batch-file cmd windows-terminal


【解决方案1】:

如果它们总是大于零的数字而不是
以零开头,您可以使用 set /a 和变量子字符串:

set MyVar="123, 234, 345, 456"

set /a "First=%MyVar:"=%"
for %%i in (%MyVar:"=%)do set "Last=%%i"

echo=%First% %Last%

如果值是字母数字并且可以设置以零开头和/或以零开头

@echo off 

set MyVar="A01, 234, 345, 0X6"

for /f delims^=^"^, %%i in ('
echo\%MyVar%')do set "First=%%i" & (
for %%i in (%MyVar:"=%)do set "Last=%%~i")

echo=%First% %Last%

【讨论】:

    【解决方案2】:
    set "first="
    set "last="
    for %%a in (%myvar%) do set "last=%%a"&if not defined first set "first=%%a"
    echo first=%first% last=%last%
    

    【讨论】:

    • 只是为了进一步澄清,由于我在问题下的评论,为了让%first%包含123,并且%last%包含456,如果你的变量确实有"123, 234, 345, 456" 的值,您可以将上面的代码从 (%myvar%) 更改为 (%myvar:"=%)(%myvar:~1,-1%) 以使其按预期工作。
    • @Compo :完全正确。我假设字符串分配是使用首选分配方法(OP:set "varname=value")进行的,其中引号不是分配值的一部分。
    猜你喜欢
    • 1970-01-01
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    相关资源
    最近更新 更多