找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3303|回复: 13

[讨论] for怎么取文本中分隔符前的空值呢

[复制链接]
发表于 2024-12-3 12:31:12 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2024-12-3 12:36:03 | 显示全部楼层
回复

使用道具 举报

发表于 2024-12-3 13:38:42 | 显示全部楼层
本帖最后由 hua_wuxin 于 2024-12-3 13:40 编辑

备用保底方案:

for /f "usebackq tokens=1-4 delims=|" %%a in ("seo.txt") do (
  if defined %%d (
    set "seo1=%%a"
    set "seo2=%%b"
    set "seo3=%%c"
    set "seo4=%%d"
  ) else (
    set "seo1="
    set "seo2="
    set "seo3=%%a"
    set "seo4=%%b"
  )
)

点评

你这个情况是提前知道前面是2个空值,但是在实际情况有可能是第三个分割符前为空,比如:|baidu.com||so.com|  发表于 2024-12-3 13:44
回复

使用道具 举报

 楼主| 发表于 2024-12-3 13:48:01 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2024-12-3 13:55:26 | 显示全部楼层
1G空间100元 发表于 2024-12-3 13:48
正常情况下每个分隔符前都是有值的,但是有时候可能是空的,需要将空值也赋予变量:
比如seo.txt的内容 ...

不改变seo.txt内容的前提下好像是不好办了
等等看有没有其他坛友有办法吧
回复

使用道具 举报

发表于 2024-12-3 14:56:06 | 显示全部楼层
本帖最后由 slore 于 2024-12-3 14:58 编辑
  1. @echo off
  2. for /f "delims=" %%a in (seo.txt) do call :UPDATE_LINE "%%a"
  3. pause && goto :EOF

  4. :UPDATE_LINE
  5. set "line=#%~1#"
  6. set "line=%line:|=#%"
  7. set "line=%line:##=#-#%"
  8. for /f "tokens=1-4 delims=#" %%a in ("%line%") do (
  9.     echo a=[%%a],        b=[%%b],        c=[%%c],        d=[%%d]
  10. )
  11. goto :EOF
复制代码

点评

连续空白的话,多加一行替换就行。 :UPDATE_LINE set "line=#%~1#" set "line=%line:|=#%" set "line=%line:###=#-#-#%" set "line=%line:##=#-#%"  详情 回复 发表于 2024-12-3 18:34
很接近了 但是第一个|前是空值是,无法赋予第一个变量为空值,比如||baidu.com|so.com|,一起4个分隔符|,第一个和第2个分隔符前是空值,baidu.com应该是第3个变量的值,跑到第2个变量去了。  发表于 2024-12-3 18:08
回复

使用道具 举报

发表于 2024-12-3 18:34:07 | 显示全部楼层

连续空白的话,多加一行替换就行。

:UPDATE_LINE
set "line=#%~1#"
set "line=%line:|=#%"
set "line=%line:###=#-#-#%"
set "line=%line:##=#-#%"

点评

靠谱 达到效果了  发表于 2024-12-3 19:01
回复

使用道具 举报

发表于 2024-12-3 20:09:36 | 显示全部楼层
学习 谢谢
回复

使用道具 举报

发表于 2024-12-4 07:25:02 | 显示全部楼层
感谢分享
回复

使用道具 举报

发表于 2024-12-4 11:11:42 | 显示全部楼层
来学习下
回复

使用道具 举报

发表于 2024-12-6 14:38:50 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1|闽公网安备35020302032614号 )

GMT+8, 2026-4-8 07:26

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表