标题: [文本处理] 批处理如何删除文本的第1个字符? [打印本页]
作者: cs_t 时间: 2011-2-26 01:36 标题: 批处理如何删除文本的第1个字符?
1,批处理如何删除文本的第1个字符?
2,批处理如何删除文本的最后1个字符?
3,批处理如何删除文本的指定位置字符?
呵呵 不晓得能不能不借助其他第三方工具实现。
作者: batman 时间: 2011-2-26 18:35
以下代码均没有考虑有空行和特殊字符的情况:
1、删除第一个字符:- @echo off&setlocal enabledelayedexpansion
- (for /f "delims=" %%a in (a.txt) do (
- if not defined str (
- set "str=%%a"&echo !str:~1!
- ) else (
- echo %%a
- )
- ))>tem
- del /q a.txt&ren tem a.txt
复制代码
2、删除最后一个字符- @echo off&setlocal enabledelayedexpansion
- (for /f "delims=" %%a in (a.txt) do (
- if defined str echo !str!
- set "str=%%a"
- )
- echo !str:~,-1!)>tem
- del /q a.txt&ren tem a.txt
复制代码
3、至于删除指定位置的字符:- @echo off&setlocal enabledelayedexpansion
- set /p h=请输入要删除的字符所在的行数:
- set /p s=请输入要删除本行的第几个字符:
- set /a s1=s-1
- (for /f "delims=" %%a in (a.txt) do (
- set /a n+=1
- if "!n!" equ "%h%" (
- set "str=%%a"&echo !str:~,%s1%!!str:~%s%!
- ) else (
- echo %%a
- )
- ))>tem
- del /q a.txt&ren tem a.txt
复制代码
[ 本帖最后由 batman 于 2011-2-26 18:36 编辑 ]
作者: lvsehuaxue 时间: 2011-2-26 18:41
1、删除第一个字符- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%i in (a.txt) do (
- set "str=%%i"
- if not defined a (echo !str:~1!>>ab) else echo %%i>>ab
- set a=a
- )
- move ab a.txt
复制代码
2、删除最后一个字符
- @echo off&setlocal enabledelayedexpansion
- echo ?????>>a.txt
- for /f "delims=" %%i in (a.txt) do (
- set "v=%%i"
- if "!v:~-5!" neq "?????" (echo %%i>>a) else echo !v:~,-6!>>a
- )
- move a a.txt
复制代码
[ 本帖最后由 lvsehuaxue 于 2011-2-26 18:47 编辑 ]
作者: cs_t 时间: 2011-2-26 18:53
感谢,对了 好久没来批处理之家了 怎么现在这么冷清了呀? 咋回事?
是批处理没用了 还是论坛的宣传不够呢?
作者: CrLf 时间: 2011-2-26 20:35
- fsutil file setzerodata offset=0 length=1 1.txt
复制代码
- setlocal enabledelayedexpansion
- set /p n=<1.txt
- (echo !n:~1!
- more +1 1.txt)>2.txt
- 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 |