标题: [文本处理] 把文本第一行移动到&字符前面的批处理怎么写? [打印本页]
作者: s091200 时间: 2025-1-14 22:05 标题: 把文本第一行移动到&字符前面的批处理怎么写?
把文本第一行移动到&字符前面的批处理怎么写谢谢
作者: Batcher 时间: 7 天前 08:36
回复 1# s091200
请给一个真实的例子说明一下你的需求吧,比如操作之前是怎样的,操作之后变成啥样?
如果需要上传文件,请用使用网盘。
如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
作者: s091200 时间: 7 天前 19:33
本帖最后由 s091200 于 2025-1-15 19:35 编辑
回复 2# Batcher
处理前的样子
L14010
M: Q420B
LP: 4935
SA140 SB140 TA10 TB10
DA25.5 X40 TR45
DA25.5 X4895 TR45
MKFF-AC-JCK29201C & X420
M30
END
处理后的样子
M: Q420B
LP: 4935
SA140 SB140 TA10 TB10
DA25.5 X40 TR45
DA25.5 X4895 TR45
MKFF-AC-JCK29201C L14010& X420
M30
END
把第一行 L14010 移动到 & 字符前
作者: 77七 时间: 7 天前 19:50
回复 3# s091200
- @echo off
- cd /d "%~dp0"
- set /p str=<"1.txt"
- (for /f "useback skip=1 delims=" %%i in ("1.txt") do (
- set _str=%%i
- setlocal enabledelayedexpansion
- echo !_str:^&=%str%^&!
- endlocal
- )) > "2.txt"
- pause
复制代码
作者: aloha20200628 时间: 7 天前 20:52
本帖最后由 aloha20200628 于 2025-1-15 21:11 编辑
回复 3# s091200
给一个用 sed.exe 简化的批处版本
可从本坛第三方直接下载 sed.exe 落地即用(http://bcn.bathome.net/s/tool/index.html?key=sed),与批处脚本和 1.txt 同目录- @echo off &setlocal &set/p v=<1.txt
- more +1 1.txt|sed "s/&/%v%&/g">2.txt
- type "2.txt"&pause&exit/b
复制代码
作者: s091200 时间: 6 天前 21:11
回复 4# 77七
非常感谢!还是无法进行多个文件同时修改。
作者: Batcher 时间: 5 天前 08:53
回复 6# s091200
请更新顶楼的需求,写清楚:多个文件同时修改。
作者: 77七 时间: 5 天前 11:14
回复 6# s091200
- @echo off
- cd /d "%~dp0"
- for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
- call :1 "%%i"
- )
- pause
- exit
-
- :1
- set /p str=<"%~1"
- (for /f "useback skip=1 delims=" %%i in ("%~1") do (
- set _str=%%i
- setlocal enabledelayedexpansion
- echo !_str:^&=%str%^&!
- endlocal
- )) > "%~n1_2%~x1"
- rem move "%~n1_2%~x1" "%~1"
- exit /b
复制代码
作者: aloha20200628 时间: 5 天前 12:16
本帖最后由 aloha20200628 于 2025-1-17 12:37 编辑
回复 1# s091200
5楼代码订正如下,存为 test.bat 运行,结果会将当前目录下凡是包含 ‘&’ 字符的 *.txt 文件逐一处理 》第一行被删除,其中有 '&' 字符的位置被置换为 ‘第一行字符串+&’,新文件名被更名为 *.new.txt- @echo off &setlocal
- for /f "delims=" %%F in ('dir /b/a-d *.txt') do find "&" "%%F">nul&&(
- set/p "v="<"%%F" &setlocal enabledelayedexpansion
- more +1 "%%F"|sed.exe "s/&/!v!&/">"%%~nF.new%%~xF"
- endlocal)
- pause&exit/b
复制代码
作者: s091200 时间: 5 天前 17:35
谢谢大家!问题以解决
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |