找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26602|回复: 8

[文本处理] 【已解决】批处理如何实现批量将若干字符串依次循环插入到txt文本的每行行首?

[复制链接]
发表于 2016-4-15 21:14:20 | 显示全部楼层 |阅读模式
本帖最后由 wzf1024 于 2016-4-16 02:21 编辑

有很多txt,包括子文件夹,需要在每个txt行首循环插入指定的若干字符,如:
原文内容……
原文内容……
原文内容……
原文内容……
原文内容……
原文内容……
原文内容……
原文内容……
指定变量word=米诺,波普,铅笔,小胖……
将变量word的接受的字符一个一个插入txt行首,插完又重新开始:
米诺#原文内容……
波普#原文内容……
铅笔#原文内容……
小胖#原文内容……
米诺#原文内容……
波普#原文内容……
铅笔#原文内容……
小胖#原文内容……
=======================
大侠帮忙啊,又有想不通的难题了

评分

参与人数 1PB -4 收起 理由
pcl_test -4 勿发笼统的标题

查看全部评分

发表于 2016-4-15 21:23:22 | 显示全部楼层
不出意料的话,你也会在这个论坛连续提问上好几年。。。

评分

参与人数 1PB +2 收起 理由
CrLf + 2 手一滑才赞的

查看全部评分

发表于 2016-4-15 22:19:15 | 显示全部楼层
回复 2# codegay


    怎么能跟大你 24 天的前辈说这么没礼貌的话
发表于 2016-4-15 22:21:55 | 显示全部楼层
本帖最后由 pcl_test 于 2016-4-15 22:23 编辑

举个栗子
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%a in (a b c) do set /a n+=1&set "#!n!=%%a"
  4. for /f "delims=" %%a in ('more +9 "%~f0"') do (
  5.     set /a m+=1
  6.     call echo;%%#!m!%%#%%a
  7.     if !m! equ !n! set m=
  8. )
  9. pause&exit
  10. 1
  11. 2
  12. 3
  13. 4
  14. 5
  15. 6
  16. 7
  17. 8
  18. 9
  19. 10
  20. 11
复制代码

评分

参与人数 1技术 +1 收起 理由
wzf1024 + 1 乐于助人

查看全部评分

发表于 2016-4-15 22:56:42 | 显示全部楼层
  1. """
  2. txt文件首行前加上字符.py
  3. 2016年4月15日 22:02:34 codegay
  4. """

  5. from itertools import cycle
  6. from subprocess import getoutput
  7. from itertools import zip_longest
  8. words=["米诺","波普","铅笔","小胖"]
  9. txt=getoutput('cmd /c "dir /s /b /a:-d *.txt"').split("\n")

  10. for word,files in zip(cycle(words),txt):
  11.     with open(files,"r+") as f:
  12.         line=f.readlines()
  13.         if "#" not in line[0]:
  14.             line=[word+"#"]+line
  15.             f.seek(0)
  16.             f.writelines(line)
复制代码
 楼主| 发表于 2016-4-15 23:24:41 | 显示全部楼层
本帖最后由 wzf1024 于 2016-4-15 23:25 编辑

回复 5# codegay


   额~~大侠,是行首不是首行,是每个txt的每一行循环插入,不是一个txt只插入首行,并且每个txt从第一个字符开始插入,就是每个txt都是一个独立循环
 楼主| 发表于 2016-4-15 23:31:33 | 显示全部楼层
回复 2# codegay


    能者为师,多谢指导!
 楼主| 发表于 2016-4-16 02:09:09 | 显示全部楼层
回复 5# codegay


    在pcl_test的代码基础上修改的,达到目的,谢谢大侠的栗子:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%a in (a b c d e) do set /a n+=1&set "#!n!=%%a"
  4. for /f "delims=" %%i in ('dir /b/s *.txt') do (
  5.         set m=0
  6. (for /f "tokens=*" %%j in ('type "%%i"') do (
  7.         if !m! equ !n! set m=
  8.             set /a m+=1
  9.         call echo;%%#!m!%%#%%%j))>$
  10. move $ "%%i"
  11. )
  12. pause&exit
复制代码
 楼主| 发表于 2016-4-16 02:11:11 | 显示全部楼层
回复 4# pcl_test


    谢谢大侠的栗子!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 22:38 , Processed in 0.021545 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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