标题: [文件操作] [已解决]求助批处理在多个txt的每一行末尾加空格 [打印本页]
作者: skunk_x 时间: 2023-4-9 12:56 标题: [已解决]求助批处理在多个txt的每一行末尾加空格
一个文件夹里有多个txt文档,每个文档有若干行
现在需要在每个文档的每一行的末尾加一个空格
用word替换能操作,但是工程量太大,而且一不小心就会出错。
求大佬做一个bat,解决我的痛苦
作者: 77七 时间: 2023-4-9 13:21
本帖最后由 77七 于 2023-4-9 13:42 编辑
- @echo off
- for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
- (for /f "delims=" %%a in ('type "%%i" ^| findstr /n .*') do (
- set "str=%%a"
- setlocal enabledelayedexpansion
- set "str=!str:*:=!"
- if "!str!" equ "" (
- echo,!str!
- ) else (
- echo,!str!
- )
- endlocal
- ))>xxx.temp
- move /y xxx.temp "%%i"
- )
- pause
复制代码
作者: skunk_x 时间: 2023-4-9 13:34
本帖最后由 skunk_x 于 2023-4-9 13:39 编辑
谢谢大佬 初学bat
echo,!str! 是加空格
set "str=!str:*:=!"是把每一行单独提出来处理的意思嘛?
补充一下 ,2楼大侠的脚本运行后结尾多出一个空行,能处理掉嘛?
作者: skunk_x 时间: 2023-4-9 13:42
问题已经解决,我在论坛找了一个去除空行的脚本,
但是还是希望学习一下如何不产生空行的办法。
作者: 77七 时间: 2023-4-9 13:45
回复 3# skunk_x
可以学习一下这个帖子http://bbs.bathome.net/viewthread.php?tid=4580
2楼代码已修改,对空行不添加空格
作者: buyiyang 时间: 2023-4-9 13:50
sed复制代码
作者: Batcher 时间: 2023-4-14 14:48
回复 2# 77七
简化:- @echo off
- cd /d "%~dp0"
- for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
- (for /f "tokens=1* delims=:" %%a in ('type "%%i" ^| findstr /n .*') do (
- if "%%b" neq "" (
- echo,%%b
- ) else (
- echo,
- )
- ))>"xxx.temp"
- move /y "xxx.temp" "%%i"
- )
复制代码
作者: 77七 时间: 2023-4-14 16:14
回复 7# Batcher
谢谢站长指导!学习了!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |