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

变量 – 如何将substring命令应用于XP cmd脚本中的双倍变量?

发布时间:2020-12-14 04:31:10 所属栏目:Windows 来源:网络整理
导读:以下是如何使用常规变量执行此操作的示例: SET _test=123456789abcdef0SET _result=%_test:~-7%ECHO %_result%:: that shows: abcdef0 但是如果在开始时使用双倍百分比的变量(如%% A),那么for循环中需要这样的变量: FOR /D %%d IN (c:windows*) DO ( ech
以下是如何使用常规变量执行此操作的示例:

SET _test=123456789abcdef0
SET _result=%_test:~-7%
ECHO %_result%
:: that shows: abcdef0

但是如果在开始时使用双倍百分比的变量(如%% A),那么for循环中需要这样的变量:

FOR /D %%d IN (c:windows*) DO (
  echo %%d
)

这有效,但是:

FOR /D %%d IN (c:windows*) DO (
  echo %%d:~-7%
)

只需将?-7复制到echo命令中

解决方法

replace和substring语法仅适用于不适用于参数的变量.

但您可以简单地将参数复制到变量中,然后使用子字符串语法.

setlocal EnableDelayedExpansion
FOR /D %%d IN (c:windows*) DO (
  set "var=%%d"
  echo !var:~-7!
)

这里需要延迟扩展,因为正常的%var%会在解析完整块时扩展,而不是在执行时扩展.

或者您可以使用呼叫技术,但这非常慢并且有许多副作用.

FOR /D %%d IN (c:windows*) DO (
  set "var=%%d"
  call echo %%var:~-7%%
)

(编辑:李大同)

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

    推荐文章
      热点阅读