batch-file - 批处理脚本:Echo 未打印变量值
问题描述
我有一个批处理脚本:
echo on
Set appdir=This is testing for substring : Management\s18vx
ECHO %appdir%
REM get substring i.e, s18vx
Set SubStr = %appdir:~43%
ECHO %SubStr%
cmd /k
获得子字符串后,我将其设置为新变量。在此变量上的 Echo 上不打印任何内容。不知道这里出了什么问题。基本上我想用提取的字符串填充新变量,即在这种情况下为 s18vx。
解决方案
试试这个:
@echo off
set "appdir=This is testing for substring : Management\s18vx"
echo %appdir%
REM get substring i.e, s18vx
Set "SubStr=%appdir:~43%"
echo %SubStr%
pause
之前和之后的空间=
真的不想要这里。这将创建一个带有试用空格的变量名和一个带有前导空格的值,即:set variable = value
因此将变为%variable %
and value
。
还要将变量用双引号括起来以消除额外的空格,尤其是在变量字符串之后。
有关set
命令的更多帮助,请打开cmd.exe
并键入set /?
一些旁注:默认情况下,Echo 是打开的,除非这构成了脚本的一部分,其中 echo 早些时候被关闭并且您出于某种原因想要打开它,您不需要打开它。
另外,我建议如果您只想要最终结果,@echo off
因为echo on
它几乎就像一个调试功能,它echo
是您运行的每个命令,其中echo off
将禁用它并仅显示最终结果。
推荐阅读
- javascript - 使用带有快递的帖子:我想从用户那里接收数据,然后使用新文件将该数据发送回用户
- c++ - 在 WinSock 中通过 127.0.0.1 发送的多播可以用 INADDR_ANY 读取吗?
- c# - 通过健康检查减少日志文件读取次数
- python - Matplotlib 条形图在 x 轴上采用连续值
- postgresql - 使用 ASW Commons/S3 库将数据从 RDS 实例导入 PostgreSQL 11.1 的问题
- python - 在 PyQt 中使用 QTimer 与计时器
- java - 执行使用 RestTemplate 返回列表的 POST 请求时出错
- pandas - 您可以让 CloudWatch 指标筛选器查看模式在单个事件中显示的次数吗?
- dictionary - 通过指针的指针更新结构不起作用
- django - websocket因“无效的帧头”而失败