[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 qixiaobin0715 于 2023-11-28 14:44 编辑

如果还有别的符号可在第4行后面按照第4行的方式添加即可:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "delims=" %%i in (1.txt) do (
  4.     set "str1=%%i.........."
  5.     set "str1=!str1:,..........=.!"
  6.     for %%j in ("!str1!") do echo,%%~nj
  7. ))>2.txt
复制代码
注意:文本中不能存在“/\*?”之类的干扰符号。

TOP

回复 8# ShowCode
谢谢提醒,已修改。

TOP

这样可能更通用一些:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "delims=" %%i in (1.txt) do (
  4.     set "str=%%i.........."
  5.     set "str=!str:,..........=!"
  6.     set "str=!str:...........=!"
  7.     set "str=!str:..........=!"
  8.     echo,!str!
  9. ))>2.txt
  10. pause
复制代码
存在“/\*?”也没问题。

TOP

本帖最后由 qixiaobin0715 于 2023-11-29 11:18 编辑

回复 14# aloha20200628
读入文本空行也可采取  “(for循环 + set /p)<被读入的文件”  的方式,稍复杂些,也算是回答了13楼ShowCode的提醒。以本帖为例:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1* delims=:" %%i in ('find /c /v "" 1.txt') do set /a n=%%j
  4. (for /l %%i in (1,1,!n!) do (
  5.     set /p str=
  6.     if not defined str (
  7.         echo,
  8.     ) else (
  9.         set "str=!str!..........
  10.         set "str=!str:,..........=!"
  11.         set "str=!str:...........=!"
  12.         set "str=!str:..........=!"
  13.         echo,!str!
  14.         set str=
  15.     )
  16. ))<1.txt>2.txt
  17. pause
复制代码
1

评分人数

    • 77七: 感谢分享技术 + 1

TOP

本帖最后由 qixiaobin0715 于 2023-11-29 15:32 编辑

回复 16# aloha20200628
有限制很正常啊,应当能够应付通常情况;
在for循环中应用set /p 逐行读取文本,正常情况下行首有空格也不会出现什么问题吧。

TOP

返回列表