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


    请问这里"set /a StrLen=%%i-5-4"的 5 是怎么得来的?

TOP

本帖最后由 buyiyang 于 2024-1-31 21:12 编辑

回复 11# ShowCode
执行
  1. (echo,a)>1.txt
复制代码
1.txt十六进制为:
  1. 61 0D 0A
复制代码
  1. echo,a|find /v "">1.txt
  2. 61 0D 0A
复制代码
  1. (echo,a)|find /v "">1.txt
  2. 61 20 0D 0A
复制代码
  1. (echo,a&echo,b)>1.txt
  2. 61 0D 0A 62 0D 0A
复制代码
  1. (echo,a&echo,b)|more>1.txt
  2. 61 20 0D 0A 62 20 0D 0A 0D 0A
复制代码
主要是疑惑为什么通过管道会多空格字符(20h)。

TOP

回复 13# ppll2030


    %%a已经是被"_"分割后的第二个数字字段了,findstr /o 通过偏移值获得%%a的长度,.pdf是4,另一个数字应该也是4(两个引号、回车、换行),
但(echo "%%a"&echo.)通过管道却多了一个空格,所以实际是5,我的问题是为什么会多空格。

TOP

回复 15# WHY

看我12楼第四个例子,
  1. (echo,a&echo,b)>1.txt
  2. 61 0D 0A 62 0D 0A
复制代码
虽然控制台显示
  1. (echo,a & echo,b ) > 1.txt
复制代码
但输出并没有空格。
  1. @echo off >&3 3>1.txt
  2. echo,a&echo,b
复制代码
这样也是,只有通过管道才会有空格。

TOP

返回列表