bat获取指定行指定字符

有一个文件内容是
12345678
"3": "1.0.1",
adcdegfs
想截取101作为新建文件的名字,有没有人能解答一下

::创建test.bat文件,复制以下内容 ,当前目录下创建test.txt文件复制你题目的文件内容

@echo off
::设置文件路径
set FilePath=.\test.txt 

::设置匹配行的字符串,匹配包含”3“的行     
set comparestr=3    

::匹配存放的字符串变量    
set str=                        

:: findstr 在文件FilePath查找包含comparestr的行
:: delims=: 查找到的行按照”:“分割 ,取分割之后的第二列

for /f "delims=: tokens=2" %%i in ( ' findstr %comparestr% %FilePath% ' ) do (
set str=%%i
)

::这是得到字符串str="1.0.1", 再从字符串里面一位一位把1,0,1分别取出来
set del_str=%str:~2,1%%str:~4,1%%str:~6,1%


::输出最后结果 为101
echo %del_str%

::创建101文件夹
md %del_str%

pause

你可以使用以下命令来获取第 2 行的第 4 到 6 个字符并将其写入新的文件中:

sed -n '2p' <input_file> | cut -c 4-6 >output_file

或者使用以下命令来达到同样的效果:

awk 'NR==2 {print substr($0, 4, 3)}' <input_file> >output_file

如果你想直接在命令行中打印出结果而不是将其写入新的文件中,可以使用以下命令:

sed -n '2p' <input_file> | cut -c 4-6

或者:

awk 'NR==2 {print substr($0, 4, 3)}' <input_file>

其中 是你想要读取的文件的文件名, 是你想要写入的文件的文件名。