加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

从Windows批处理文件中的字符串中删除第一个和最后一个字符

发布时间:2020-12-14 04:09:43 所属栏目:Windows 来源:网络整理
导读:我的 Windows批处理文件中有以下字符串: "-String" 该字符串还包含字符串开头和结尾的两个引号,如上所述. 我想剥离第一个和最后一个字符,以便我得到以下字符串: -String 我试过这个: set currentParameter="-String"echo %currentParameter:~1,-1% 这将打
我的 Windows批处理文件中有以下字符串:
"-String"

该字符串还包含字符串开头和结尾的两个引号,如上所述.

我想剥离第一个和最后一个字符,以便我得到以下字符串:

-String

我试过这个:

set currentParameter="-String"
echo %currentParameter:~1,-1%

这将打印出应该是的字符串:

-String

但是当我尝试像这样存储编辑过的字符串时,它会失败:

set currentParameter="-String"
set currentParameter=%currentParameter:~1,-1%
echo %currentParameter%

什么都没打印出来.我做错了什么?

这真的很奇怪.当我删除这样的字符时,它可以工作:

set currentParameter="-String"
set currentParameter=%currentParameter:~1,-1%
echo %currentParameter%

打印出来:

-String

但实际上我的批次有点复杂,并且它不起作用.我将展示我编程的内容:

@echo off

set string="-String","-String2"

Set count=0
For %%j in (%string%) Do Set /A count+=1


FOR /L %%H IN (1,1,%COUNT%) DO ( 

    echo .
        call :myFunc %%H
)
exit /b

:myFunc
FOR /F "tokens=%1 delims=," %%I IN ("%string%") Do (

    echo String WITHOUT stripping characters: %%I 
    set currentParameter=%%I
    set currentParameter=%currentParameter:~1,-1%

    echo String WITH stripping characters: %currentParameter% 

    echo .

)
exit /b   

:end

输出是:

.
String WITHOUT stripping characters: "-String"
String WITH stripping characters:
.
.
String WITHOUT stripping characters: "-String2"
String WITH stripping characters: ~1,-1
.

但我想要的是:

.
String WITHOUT stripping characters: "-String"
String WITH stripping characters: -String
.
.
String WITHOUT stripping characters: "-String2"
String WITH stripping characters: -String2
.
你正在括号内修改一个变量.注意 – 新值不会在同一个块中使用(除非您使用!而不是%来分隔变量 – 并在enabledelayedexpansion模式下运行).
或者只是将几行提取到另一个子函数中,使用()的简单行序列

招呼,Stach

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读