[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决] 批处理命令echo显示时如何忽略连接符?

本帖最后由 pZjVa0 于 2013-7-13 17:20 编辑
  1. @echo off
  2. set /p text=请输入内容:
  3. echo %text%
  4. pause
复制代码
以上代码中,text的内容为不确定性

在不添加""(双引号) 的情况下,如何可以做到即使用户输入了带&(连接符)等特殊符号的情况下也可以正常显示出来
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

变量延迟拓展

TOP

  1. set a=abc^^^&qdj
  2. echo %a%
  3. pause
复制代码
时光荏苒||新陈代谢&&涛声依旧||本性难移

TOP

回复 3# 悬崖之树


    显示内容为不确定性。

TOP

回复 2# Demon


    除了变量延迟之外呢?

TOP

变量延迟方案:
  1. setlocal enabledelayedexpansion
  2. echo !text!
  3. endlocal
复制代码
虽然不明白变量延迟有什么不便,但也可以这样
  1. for /f "tokens=1* delims==" %%a in ('set text') do if %%a==text echo %%b
复制代码

TOP

本帖最后由 悬崖之树 于 2013-7-11 21:45 编辑
  1. setlocal enabledelayedexpansion
  2. echo !text!
  3. endlocal
复制代码
是可以把text变量的内容原样输出,但是给text赋值就比较麻烦,如:
set text=abc^&ssm
不能做到输入什么就显示什么。
时光荏苒||新陈代谢&&涛声依旧||本性难移

TOP

回复 6# CrLf


    现在才知道用延迟变量可以达到这样。

如果%1有特殊符号要怎么写呢?

TOP

回复 8# 522235677
  1. set /p"=%~1"<nul&echo;
复制代码

TOP

回复 9# CrLf
  1. C:\Users\Admin>"F:\新建 Windows 批处理文件 (3).bat" 1&1
复制代码
依然不行啊

TOP

回复 10# 522235677


    这是 shell 的参数解析 bug,传递参数时不将程序中的特殊符号进行转义处理,是 ms 不负责任,自家孩子都不关照

TOP

回复  522235677


    这是 shell 的参数解析 bug,传递参数时不将程序中的特殊符号进行转义处理,是  ...
CrLf 发表于 2013-7-12 23:35


这个不是BUG,echo hello&world本来就应该解析为echo hello&world,Linux下的Shell也是如此。

TOP

本帖最后由 523066680 于 2013-7-13 12:33 编辑

回复 1# pZjVa0


处理过程添加双引号,显示的时候不显示双引号
  1. @echo off
  2. set /p text=请输入内容:
  3. set /p in="%text%"<nul
  4. echo,
  5. pause
复制代码
请输入内容:C:\Users\Admin>"F:\新建 Windows 批处理文件 (3).bat" 1&1
C:\Users\Admin>"F:\新建 Windows 批处理文件 (3).bat" 1&1
请按任意键继续. . .


刚刚重新看帖才看到Crlf妞的写法。差不多吧
1

评分人数

TOP

回复 13# 523066680


    最后请教一个,上面代码有办法可以用这种形式输出吗?
  1. 请输入内容:
  2. 你输入的内容是:xxxx
复制代码
在结果前面增加一段文字

TOP

回复 13# 523066680
  1. @echo off
  2. set /p text=请输入内容:
  3. set /p in="你输入的内容是:"<nul
  4. set /p in="%text%"<nul
  5. echo,
  6. pause
复制代码
我试了一下,把代码改成这样后可以变成我想要的效果,不知道这样写是不是最好的方法呢?

TOP

返回列表