Board logo

标题: [文本处理] 批处理如何删除文本的第1个字符? [打印本页]

作者: cs_t    时间: 2011-2-26 01:36     标题: 批处理如何删除文本的第1个字符?

1,批处理如何删除文本的第1个字符?

2,批处理如何删除文本的最后1个字符?

3,批处理如何删除文本的指定位置字符?

呵呵 不晓得能不能不借助其他第三方工具实现。
作者: batman    时间: 2011-2-26 18:35

以下代码均没有考虑有空行和特殊字符的情况:
1、删除第一个字符:
  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "delims=" %%a in (a.txt) do (
  3.        if not defined str (
  4.           set "str=%%a"&echo !str:~1!
  5.           ) else (
  6.           echo %%a
  7.        )
  8. ))>tem
  9. del /q a.txt&ren tem a.txt
复制代码
2、删除最后一个字符
  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "delims=" %%a in (a.txt) do (
  3.      if defined str echo !str!
  4.     set "str=%%a"
  5. )
  6. echo !str:~,-1!)>tem
  7. del /q a.txt&ren tem a.txt
复制代码
3、至于删除指定位置的字符:
  1. @echo off&setlocal enabledelayedexpansion
  2. set /p h=请输入要删除的字符所在的行数:
  3. set /p s=请输入要删除本行的第几个字符:
  4. set /a s1=s-1
  5. (for /f "delims=" %%a in (a.txt) do (
  6.      set /a n+=1
  7.      if "!n!" equ "%h%" (
  8.         set "str=%%a"&echo !str:~,%s1%!!str:~%s%!
  9.         ) else (
  10.         echo %%a
  11.      )
  12. ))>tem
  13. del /q a.txt&ren tem a.txt
复制代码

[ 本帖最后由 batman 于 2011-2-26 18:36 编辑 ]
作者: lvsehuaxue    时间: 2011-2-26 18:41

1、删除第一个字符
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (a.txt) do (
  3.     set "str=%%i"
  4.     if not defined a (echo !str:~1!>>ab) else echo %%i>>ab
  5.     set a=a
  6. )
  7. move ab a.txt
复制代码

2、删除最后一个字符
  1. @echo off&setlocal enabledelayedexpansion
  2. echo ?????>>a.txt
  3. for /f "delims=" %%i in (a.txt) do (
  4.     set "v=%%i"
  5.     if "!v:~-5!" neq "?????" (echo %%i>>a) else echo !v:~,-6!>>a
  6. )
  7. move a a.txt
复制代码

[ 本帖最后由 lvsehuaxue 于 2011-2-26 18:47 编辑 ]
作者: cs_t    时间: 2011-2-26 18:53

感谢,对了 好久没来批处理之家了 怎么现在这么冷清了呀? 咋回事?

是批处理没用了 还是论坛的宣传不够呢?
作者: CrLf    时间: 2011-2-26 20:35

  1. fsutil file setzerodata offset=0 length=1 1.txt
复制代码
  1. setlocal enabledelayedexpansion
  2. set /p n=<1.txt
  3. (echo !n:~1!
  4. more +1 1.txt)>2.txt
  5. move 2.txt 1.txt
复制代码

作者: wc726842270    时间: 2011-2-28 16:56

学习了,每一楼的代码都很精彩。不过“fsutil file setzerodata offset=0 length=1 1.txt”第一次看见




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2