[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理怎样删除每行的第一字节数?

有很多文本,每个文本中有很多行,每行都是以数字开始的。修改前的文本在C盘的A文件夹中,修改后的文本放在C盘的B文件夹中。

要求:删除每行的第一个数字。

这样的批处理怎么写,谢谢!

(刚开始学批处理)

谢谢 broly  帮我解决了这个问题。

[ 本帖最后由 pingdan 于 2010-7-19 16:35 编辑 ]

  1. @echo off&setlocal enabledelayedexpansion
  2. md "c:\b" 2>nul
  3. for /f "delims=" %%a in ('dir /b /a-d "c:\a"') do (
  4.     (for /f "usebackq delims=" %%b in ("%%a") do (
  5.         set "str=%%b"
  6.         echo !str:~1!
  7.     ))>c:\b\%%~nxa
  8. )                  
  9. pause
复制代码

TOP

运行结果,文本中的内容为空。

TOP

运行前(C盘A文件夹)
01234567
07654321
01593575
03571595

运行后(C盘B文件夹)
1234567
7654321
1593575
3571595

.bat 文件不在这两个文件夹内

[ 本帖最后由 pingdan 于 2010-7-18 14:09 编辑 ]

TOP

放在C盘运行

  1. @echo off & setlocal enabledelayedexpansion
  2. if not exist %~dp0B md %~dp0B
  3. for %%i in ("%~dp0A\*.txt") do (
  4. for /f "delims=" %%j in ('type "%%i"') do (set t=%%j & echo !t:~1!>>"%~dp0B\%%~nxi"))
  5. pause>nul
复制代码
---学无止境---

TOP

原帖由 pingdan 于 2010-7-18 14:02 发表
运行结果,文本中的内容为空。

编码问题?

TOP

原帖由 terse 于 2010-7-19 01:46 发表

编码问题?


不知道是啥问题。

TOP

原帖由 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 ...


能用,谢谢。

请问,能否将批文件放在别的地方。

TOP

原帖由 pingdan 于 2010-7-19 06:16 发表


不知道是啥问题。

这样试呢
  1. @echo off&setlocal enabledelayedexpansion
  2. md "c:\b" 2>nul
  3. for /f "delims=" %%a in ('dir /b /a-d "c:\a"') do (
  4.     (for /f "delims=" %%b in ('type "%%a"') do (
  5.         set "str=%%b"
  6.         echo !str:~1!
  7.     ))>"c:\b\%%~nxa"
  8. )                  
  9. pause
复制代码

TOP

可以,把代码中的所以%~dp0改为c:\

TOP

terse

你的结果我已试过,还是不行。

谢谢

TOP

原帖由 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后面多了个空格

请问这个空格能去掉吗 ?

TOP

回复 12楼 的帖子

  1. @echo off & setlocal enabledelayedexpansion
  2. if not exist c:\B md c:\B
  3. for %%i in ("c:\A\*.txt") do (
  4. for /f "delims=" %%j in ('type "%%i"') do (set t=%%j & set t=!t:~1! & echo !t: =!>>"c:\B\%%~nxi"))
  5. echo OK^!
  6. pause>nul
复制代码
---学无止境---

TOP

原帖由 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" ...



顺利通过,谢谢。

TOP

返回列表