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

[文本处理] 求助批处理如何在当前脚本环境之下,传输带变量的脚本语句到新文本文件

如何做才能在当前命令行脚本环境之下,不依赖其它现成文本内容,原样不转义传输带变量的脚本语句到新建文本,试过echo总是将变量转义之后再重定向输送到新建文本,clip倒是不转义原样输送,但是依赖已有文本,两者都无法满足工作需要。还有没有其它办法,这里先行拜谢各位大佬了!
  1. @echo off
  2. echo %cd% | clip
  3. echo %cd%>test.txt
  4. pause
复制代码
比如以上代码无法原样传输环境变量cd的引用形式%cd%,而是将之转换成具体内容之后再传输,但这样并不是我想要结果

即传输时将其视作字符串,而不视作具体变量内容

TOP

echo ^%cd^%

TOP

回复 1# kfl0
echo,%%cd%%

TOP

  1. @echo off
  2. echo %%cd%% ^| clip
  3. echo %%cd%%
  4. pause
复制代码

TOP

本帖最后由 qixiaobin0715 于 2021-9-16 21:57 编辑

1.输出“^ > >> & && | ||”
  1. echo ^^
  2. echo ^>
  3. echo ^>^>
  4. echo ^&
  5. echo ^&^&
  6. echo ^|
  7. echo ^|^|
  8. pause
复制代码
2.用echo输出%,输出的个数是代码个数除以2,另外,由于批处理不支持浮点数,那么像0.5个就直接舍弃。于是像echo %,没有输出什么内容。echo %% 和 echo %%%效果一样,都是输出一个%。

TOP

第1种情况不用转义也可,可用双引号包围起来,但输出的内容也会带双引号:
echo "^ > >> & && | ||"

TOP

本帖最后由 qixiaobin0715 于 2021-9-17 09:54 编辑

回复 1# kfl0
第1种情况不转义,这样处理:
  1. @echo off
  2. set "var=^ > >> & && | ||"
  3. setlocal enabledelayedexpansion
  4. echo,!var!
  5. pause
复制代码
百分号还是必须成双出现。

TOP

回复 8# qixiaobin0715
谢谢!变量引用形式两侧再加一对百分号的方法,实测可行。太感谢了,还是自己萌新基础不扎实,不得其妙

TOP

另一种办法:
  1. ::%cd%
  2. @echo off
  3. setlocal enabledelayedexpansion
  4. set /p s=<"%~f0"
  5. echo;!s:~2!
  6. pause
复制代码

TOP

返回列表