标题: [文本处理] [已解决]批处理怎样删除每行的第一字节数? [打印本页]
作者: pingdan 时间: 2010-7-18 13:12 标题: [已解决]批处理怎样删除每行的第一字节数?
有很多文本,每个文本中有很多行,每行都是以数字开始的。修改前的文本在C盘的A文件夹中,修改后的文本放在C盘的B文件夹中。
要求:删除每行的第一个数字。
这样的批处理怎么写,谢谢!
(刚开始学批处理)
谢谢 broly 帮我解决了这个问题。
[ 本帖最后由 pingdan 于 2010-7-19 16:35 编辑 ]
作者: terse 时间: 2010-7-18 13:38
- @echo off&setlocal enabledelayedexpansion
- md "c:\b" 2>nul
- for /f "delims=" %%a in ('dir /b /a-d "c:\a"') do (
- (for /f "usebackq delims=" %%b in ("%%a") do (
- set "str=%%b"
- echo !str:~1!
- ))>c:\b\%%~nxa
- )
- pause
复制代码
作者: pingdan 时间: 2010-7-18 14:02
运行结果,文本中的内容为空。
作者: pingdan 时间: 2010-7-18 14:07
运行前(C盘A文件夹)
01234567
07654321
01593575
03571595
运行后(C盘B文件夹)
1234567
7654321
1593575
3571595
.bat 文件不在这两个文件夹内
[ 本帖最后由 pingdan 于 2010-7-18 14:09 编辑 ]
作者: broly 时间: 2010-7-18 21:43
放在C盘运行
- @echo off & setlocal enabledelayedexpansion
- if not exist %~dp0B md %~dp0B
- for %%i in ("%~dp0A\*.txt") do (
- for /f "delims=" %%j in ('type "%%i"') do (set t=%%j & echo !t:~1!>>"%~dp0B\%%~nxi"))
- pause>nul
复制代码
作者: terse 时间: 2010-7-19 01:46
原帖由 pingdan 于 2010-7-18 14:02 发表
运行结果,文本中的内容为空。
编码问题?
作者: pingdan 时间: 2010-7-19 06:16
原帖由 terse 于 2010-7-19 01:46 发表
编码问题?
不知道是啥问题。
作者: pingdan 时间: 2010-7-19 09:43
原帖由 broly 于 2010-7-18 21:43 发表
放在C盘运行
@echo off & setlocal enabledelayedexpansion
if not exist %~dp0B md %~dp0B
for %%i in ("%~dp0A\*.txt") do (
for /f "delims=" %%j in ('type "%%i"') do (set t=%%j & echo !t:~1!>>"%~dp0B ...
能用,谢谢。
请问,能否将批文件放在别的地方。
作者: terse 时间: 2010-7-19 11:33
原帖由 pingdan 于 2010-7-19 06:16 发表
不知道是啥问题。
这样试呢
- @echo off&setlocal enabledelayedexpansion
- md "c:\b" 2>nul
- for /f "delims=" %%a in ('dir /b /a-d "c:\a"') do (
- (for /f "delims=" %%b in ('type "%%a"') do (
- set "str=%%b"
- echo !str:~1!
- ))>"c:\b\%%~nxa"
- )
- pause
复制代码
作者: broly 时间: 2010-7-19 11:34
可以,把代码中的所以%~dp0改为c:\
作者: pingdan 时间: 2010-7-19 16:32
terse
你的结果我已试过,还是不行。
谢谢
作者: pingdan 时间: 2010-7-19 20:51
原帖由 broly 于 2010-7-18 21:43 发表
放在C盘运行
@echo off & setlocal enabledelayedexpansion
if not exist %~dp0B md %~dp0B
for %%i in ("%~dp0A\*.txt") do (
for /f "delims=" %%j in ('type "%%i"') do (set t=%%j & echo !t:~1!>>"%~dp0B ...
发现一个问题,
改前:0123456 共有7个字节,6后面没有空格
改后:123456 还是有7个字节,6后面多了个空格
请问这个空格能去掉吗 ?
作者: broly 时间: 2010-7-19 20:58 标题: 回复 12楼 的帖子
- @echo off & setlocal enabledelayedexpansion
- if not exist c:\B md c:\B
- for %%i in ("c:\A\*.txt") do (
- for /f "delims=" %%j in ('type "%%i"') do (set t=%%j & set t=!t:~1! & echo !t: =!>>"c:\B\%%~nxi"))
- echo OK^!
- pause>nul
复制代码
作者: pingdan 时间: 2010-7-19 21:15
原帖由 broly 于 2010-7-19 20:58 发表
@echo off & setlocal enabledelayedexpansion
if not exist c:\B md c:\B
for %%i in ("c:\A\*.txt") do (
for /f "delims=" %%j in ('type "%%i"') do (set t=%%j & set t=!t:~1! & echo !t: =!>>"c:\B\%%~nxi" ...
顺利通过,谢谢。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |