Board logo

标题: 如何在批量文件的里面第一个字符处加入指定内容? [打印本页]

作者: zhengruijian     时间: 2008-5-30 21:34    标题: 如何在批量文件的里面第一个字符处加入指定内容?

各位大哥小弟有一事相求!
如何在批量文件的里面第一个字符处添加入指字内容?
请指教.多谢!
在线等 !

[ Last edited by zhengruijian on 2008-5-31 at 08:56 AM ]
作者: bat-zw     时间: 2008-5-30 22:01
===>search...
作者: zhengruijian     时间: 2008-5-30 22:13
小弟刚来.搜了一下没搜到哦??
请大侠帮帮忙啊!
多谢谢.!!
作者: lxmxn     时间: 2008-5-30 22:29


  Quote:
Originally posted by zhengruijian at 2008-5-30 22:13:
小弟刚来.搜了一下没搜到哦??
请大侠帮帮忙啊!
多谢谢.!!

肯定没有搜索,要是真搜索了,可以找到不下20个帖子,都可以解决你的问题。
作者: zhengruijian     时间: 2008-5-31 07:06
说两句.
搜索命令竟然要加入" OR "!如果搜索名过长就搜不到,而已OR还不能小写,一定要大写的.是不是BUG啊?
小弟刚刚入行哦.
我搞了个通宵,搞了 下面一个程序,现在不敢运行啊.怕我我东东全搞坏了.
大侠看看行不行啊?
我搞的下面的这个程序用处是把"C:\Documents and Settings\Administrator\桌面\222" 里面的所有 *.TXT文件的第一行前面加上"[00:00.00]".

@echo off&setlocal enabledelayedexpansion
for /r C:\Documents and Settings\Administrator\桌面\222 "delims=" %%i in ('type *.txt') do (
     set /a n+=1
     if !n! equ 1 (
        echo %%i>*.txt
        ) else (
        if !n! equ 1 (
          echo [00:00.00]>>*.txt&echo %%i>>*.txt
          ) else (
          echo %%i>>*.txt
       )
    )
)     

echo 全部ok!

大侠看看行不行啊?
作者: zhengruijian     时间: 2008-5-31 07:34
没有人来哦...555
作者: lxmxn     时间: 2008-5-31 09:34
肯定不行了。

1、带有空格的路径没有加引号,会报错;
2、for /r 的 in ()里面只能是类型说明符,而不是一个命令;
3、“> *.txt” 这样是写不进文件的。
作者: bat-zw     时间: 2008-5-31 11:29    标题: 真佩服楼主的精神:

&&一个通霄!楼主精神可嘉,为了楼主这种精神,我再来解答一次吧:
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /s /a-d /b c:\docume~1\admini~1\桌面\222\*.txt') do (
    for /f "delims=" %%i in ('type "%%a"') do (
        if not defined flag (
           echo [00:00.00] %%i>"%%a"&set "flag=A"
           ) else (
           echo %%i>>"%%a"
         )
     )
     set "flag="
)
echo 全部ok!
pause>nul
ps:看情形楼主是要在文件里加入时间吧,那就把[00:00.00]改成%time%就可以了。

[ Last edited by zw19750516 on 2008-5-31 at 12:15 PM ]
作者: bat-zw     时间: 2008-5-31 12:24    标题: 如有子文件夹并不想处理子文件中的文件:


@echo off&setlocal enabledelayedexpansion
cd\&cd /d c:\docume~1\admini~1\桌面\222
for /f "delims=" %%a in ('dir /a-d /b *.txt') do (
    for /f "delims=" %%i in ('type "%%a"') do (
        if not defined flag (
           echo [00:00.00] %%i>"%%a"&set "flag=A"
           ) else (
           echo %%i>>"%%a"
         )
     )
     set "flag="
)
echo 全部ok!
pause>nul

@echo off&setlocal enabledelayedexpansion
for %%a in (c:\docume~1\admini~1\桌面\222\*.txt) do (
    for /f "delims=" %%i in ('type "%%a"') do (
        if not defined flag (
           echo [00:00.00] %%i>"%%a"&set "flag=A"
           ) else (
           echo %%i>>"%%a"
         )
     )
     set "flag="
)
echo 全部ok!
pause>nul

作者: WANKOILZ     时间: 2008-5-31 12:36
我也来个用type的:
@echo off
for /r "C:\Documents and Settings\Administrator\桌面\222" %%i in (*.txt) do (
set "name=%%~nxi"
echo [00:00.00]>tmp.txt&type "%%i">>tmp.txt
del "%%i"&call rename tmp.txt "%%name%%"
)

作者: zhengruijian     时间: 2008-5-31 18:18


  Quote:
Originally posted by zw19750516 at 2008-5-31 11:29:
&&一个通霄!楼主精神可嘉,为了楼主这种精神,我再来解答一次吧:
[code]
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /s ...

如果想在最后一行前面加入,这个程序怎么改啊??
作者: zhengruijian     时间: 2008-5-31 18:21
另外问一下.文本中每个行/每个字符的位置,都有什么表示方法啊?
作者: bat-zw     时间: 2008-6-1 00:30


  Quote:
Originally posted by zhengruijian at 2008-5-31 18:18:


如果想在最后一行前面加入,这个程序怎么改啊??


@echo off&setlocal enabledelayedexpansion
for %%a in (c:\docume~1\admini~1\桌面\222\*.txt) do (
    for /f "delims=" %%i in ('type "%%a"') do (
         set /a n+=1&set _!n!=%%i
    )
    for %%i in (1,1,!n!) do (
         if %%i equ 1 do (
            echo !_%%i!>"%%a"
            ) else (
            if %%i equ !n! (
               echo [00:00.00] !_%%i!>>"%%a"
               ) else (
               echo !_%%i!>>"%%a"
            )
         )
    )
    set n=0
)
echo 全部ok!
pause>nul

作者: bat-zw     时间: 2008-6-1 00:54


  Quote:
Originally posted by zhengruijian at 2008-5-31 18:21:
另外问一下.文本中每个行/每个字符的位置,都有什么表示方法啊?

运行以下代码你就会明白了:
@echo off&setlocal enabledelayedexpansion
if exist a.txt del /q a.txt
for /l %%i in (1,1,50) do echo %%i.www.cn-dos.net.zw19750516>>a.txt
for /f "delims=" %%i in (a.txt) do (
     set /a n+=1&set _!n!=%%i&set str=%%i&call :lp
)
set /p select1=请输入你想显示第几行(1-%n%):
cls&echo 你要显示的行为:!_%select1%!
pause
cls&set /p select2=请输入你想显示第几行第几个字符(格式为2.12):
for /f "tokens=1,2 delims=." %%i in ("%select2%") do set a=%%i&set b=%%j
cls&echo 你要显示的字符为:!_%a%_%b%!
pause&del /q a.txt
goto :eof
:lp
set /a m+=1
set _%n%_%m%=%str:~,1%&set str=%str:~1%
if defined str goto lp
set m=0
[ Last edited by zw19750516 on 2008-6-1 at 01:09 AM ]