标题: [文本处理] 【已解决】批处理想取出文本中间,哪位帮忙看看 [打印本页]
作者: qw123456 时间: 2024-8-29 15:32 标题: 【已解决】批处理想取出文本中间,哪位帮忙看看
读入一个urls.txt的文件,读取每一行,得到\的总数,得到\的前后位置,取\中间文本,但是代码在去出中间部分的时候不执行,查了资料也么有搞明白,那我指导一下。- @echo off &setlocal
- for /f "delims=" %%a in (urls.txt) do (
- echo,%%a>0.0&for %%v in (0.0) do set "v1=%%~zv"
- setlocal enabledelayedexpansion &set "s=%%a" &set "s=!s:\=!"
- echo,!s!>0.0&for %%v in (0.0) do set "v2=%%~zv"
- set/a "v=v1-v2"
- set/a "we=v-1"
- set/a "we2=v-2"
- set "line=%%a"
- for /f "tokens=%we%,%we2% delims=\" %%i in ("%line%") do (
- set "middlePart=%%i")
- endlocal
- )
- del/q "0.0"&endlocal&pause&exit/b
-
- pause
复制代码
作者: 77七 时间: 2024-8-29 16:15
情况复杂,请把文本上传到网盘。
作者: qixiaobin0715 时间: 2024-8-29 16:18
你要说得让大家都明白。比如某一行共有5个反斜杠,你要取哪一部分文本呢;亦或你最终目的是要做什么呢?
作者: qw123456 时间: 2024-8-29 16:23
回复 2# 77七
链接:https://pan.baidu.com/s/1k1dYVxOnbABmC9QZ_6VWWg
提取码:gl2j
作者: 77七 时间: 2024-8-29 16:31
回复 4# qw123456
假如是这样
- D:\book\20\29\tiles.yaml
- D:\book\20\30\40\tiles.yaml
复制代码
希望得到的结果是什么样的?
作者: qw123456 时间: 2024-8-29 16:31
回复 3# qixiaobin0715
是这样的打开1.txt 读取每一行 ,先确定 一行有多少个“\” ,第一行是这样的:D:\book\18\1\tiles.yaml 我取出他有多少"\",比如他有4个, for /f "tokens=2,3 delims=\" %%a in ("%str%") do () 也就是取到18这个数,命令中用4-3,4-2的意思是从后面取。 D:\book这个是不固定的有可能
D:\book\三国\1\18\1\tiles.yaml,但是从后面取18位置基本固定的。6-3,6-2 。
作者: qw123456 时间: 2024-8-29 16:34
本帖最后由 qw123456 于 2024-8-29 16:37 编辑
回复 6# 77七
D:\book\20\29\tiles.yaml
D:\book\20\30\40\tiles.yaml
第一行得到20 从后往前数是固定的 3 2
第二行得到30 从后往前数是固定的 3 2
作者: qixiaobin0715 时间: 2024-8-29 16:35
你最终目的是要做什么?
作者: qw123456 时间: 2024-8-29 16:38
回复 8# qixiaobin0715
D:\book\20\29\tiles.yaml
D:\book\20\30\40\tiles.yaml
第一行得到20 从后往前数是固定的 3 2
第二行得到30 从后往前数是固定的 3 2
作者: qixiaobin0715 时间: 2024-8-29 16:50
- @echo off
- for /f "delims=" %%i in (urls.txt) do (
- for %%j in ("%%i\..\..") do echo,%%~nxj
- )
- pause
复制代码
作者: qw123456 时间: 2024-8-29 20:20
回复 10# qixiaobin0715
@echo off
for /f "delims=" %%i in (urls.txt) do (
for %%j in ("%%i\..\..") do echo,%%~nxj
if "%downdir%"=="" set downdir=%%~nxj
if not exist %downdir% md %downdir%
)
pause
大佬看看怎么不能新建啊
作者: Five66 时间: 2024-8-29 20:55
啊 , 意思是从后往前取 , 取第3列么
作者: qixiaobin0715 时间: 2024-8-30 08:25
回复 11# qw123456
怎么是这样?挤牙膏式的提问,就不能整理一下思路,把你的需求前前后后一次性说清楚不就行了。基本上是同一个求助,开了3个新帖,还不一定解决问题,帮你的人不知道你到底要解决什么问题,需要一个个的猜,也浪费别人的时间和精力。先学习学习别的帖子的提问方式吧。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |