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

[文本处理] 把文本第一行移动到&字符前面的批处理怎么写?

把文本第一行移动到&字符前面的批处理怎么写谢谢

回复 1# s091200


请给一个真实的例子说明一下你的需求吧,比如操作之前是怎样的,操作之后变成啥样?
如果需要上传文件,请用使用网盘。

如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 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 移动到 & 字符前

TOP

回复 3# s091200


  
  1. @echo off
  2. cd /d "%~dp0"
  3. set /p str=<"1.txt"
  4. (for /f "useback skip=1 delims=" %%i in ("1.txt") do (
  5. set _str=%%i
  6. setlocal enabledelayedexpansion
  7. echo !_str:^&=%str%^&!
  8. endlocal
  9. )) > "2.txt"
  10. pause
复制代码
bat小白,请多指教!谢谢!

TOP

本帖最后由 aloha20200628 于 2025-1-15 21:11 编辑

回复 3# s091200

给一个用 sed.exe 简化的批处版本
可从本坛第三方直接下载 sed.exe 落地即用(http://bcn.bathome.net/s/tool/index.html?key=sed),与批处脚本和 1.txt 同目录
  1. @echo off &setlocal &set/p v=<1.txt
  2. more +1 1.txt|sed "s/&/%v%&/g">2.txt
  3. type "2.txt"&pause&exit/b
复制代码

TOP

回复 4# 77七


    非常感谢!还是无法进行多个文件同时修改。

TOP

回复 6# s091200


    请更新顶楼的需求,写清楚:多个文件同时修改。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 6# s091200

  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
  4. call :1 "%%i"
  5. )
  6. pause
  7. exit
  8. :1
  9. set /p str=<"%~1"
  10. (for /f "useback skip=1 delims=" %%i in ("%~1") do (
  11. set _str=%%i
  12. setlocal enabledelayedexpansion
  13. echo !_str:^&=%str%^&!
  14. endlocal
  15. )) > "%~n1_2%~x1"
  16. rem move "%~n1_2%~x1" "%~1"
  17. exit /b
复制代码
bat小白,请多指教!谢谢!

TOP

本帖最后由 aloha20200628 于 2025-1-17 12:37 编辑

回复 1# s091200

5楼代码订正如下,存为 test.bat 运行,结果会将当前目录下凡是包含 ‘&’ 字符的 *.txt 文件逐一处理 》第一行被删除,其中有 '&' 字符的位置被置换为 ‘第一行字符串+&’,新文件名被更名为 *.new.txt
  1. @echo off &setlocal
  2. for /f "delims=" %%F in ('dir /b/a-d *.txt') do find "&" "%%F">nul&&(
  3.    set/p "v="<"%%F" &setlocal enabledelayedexpansion
  4.    more +1 "%%F"|sed.exe "s/&/!v!&/">"%%~nF.new%%~xF"
  5.    endlocal)
  6. pause&exit/b
复制代码

TOP

谢谢大家!问题以解决

TOP

返回列表