Board logo

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

作者: kfl0    时间: 2021-9-16 20:10     标题: 求助批处理如何在当前脚本环境之下,传输带变量的脚本语句到新文本文件

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

即传输时将其视作字符串,而不视作具体变量内容
作者: idwma    时间: 2021-9-16 21:28

echo ^%cd^%
作者: qixiaobin0715    时间: 2021-9-16 21:31

回复 1# kfl0
echo,%%cd%%
作者: qixiaobin0715    时间: 2021-9-16 21:38

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

作者: qixiaobin0715    时间: 2021-9-16 21:55

本帖最后由 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 %%%效果一样,都是输出一个%。
作者: qixiaobin0715    时间: 2021-9-16 22:03

第1种情况不用转义也可,可用双引号包围起来,但输出的内容也会带双引号:
echo "^ > >> & && | ||"
作者: qixiaobin0715    时间: 2021-9-17 09:37

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

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

回复 8# qixiaobin0715
谢谢!变量引用形式两侧再加一对百分号的方法,实测可行。太感谢了,还是自己萌新基础不扎实,不得其妙
作者: WHY    时间: 2021-9-18 22:21

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





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2