您的当前位置:首页正文

求bat批处理删除当前目录下所有txt文件中的数字内容

来源:无忧晚年 2013-07-01

有网友碰到这样的问题“求bat批处理删除当前目录下所有txt文件中的数字内容”。小编为您整理了以下解决方案,希望对您有帮助:

解决方案1:

如果文件中内容都是你上面举例的格式:中文+数字+扩展名,可以这样:

@echo off
for %%i in (1 2 3 4 5) do (
  (for /f "tokens=1* delims=0123456789" %%a in (%%i.txt) do echo %%a%%b)>tmp
  move /y tmp "%%i.txt"
)

如果文件中内容有中文+数字混合的,如:中文12字体3.png,则:

@echo off&setlocal enabledelayedexpansion
for %%i in (1 2 3 4 5) do (
  (for /f "delims=" %%a in (%%i.txt) do (
    set "str=%%a"
    for %%b in (0 1 2 3 4 5 6 7 8 9) do set "str=!str:%%b=!"
    echo,!str!
  ))>tmp
  move /y tmp "%%i.txt"
)

解决方案2:

如果均是像中文字体XXX.png这种排列方式

@echo off
setlocal enabledelayedexpansion
for /f %%i in ("1.txt" "2.txt" "3.txt" "4.txt" "5.txt") do (
set a=%%i
echo !a:0,4!!a:~-4! >>%%i.bak
del "%%i" && ren "%%i.bak" "%%i"
)

解决方案3:

@echo off
setlocal enabledelayedexpansion
set n=0 1 2 3 4 5 6 7 8 9
set /p name=请输入要修改的文本文件(无后缀,如1.txt 输入1即可):
(for /f %%a in (!name!.txt) do (
set a=%%a
for %%b in (%n%) do if not "!a!"=="" set a=!a:%%b=!
if not "!a!"=="" echo.!a!
))>"!name!_new.txt"
start "" "!name!_new.txt"

先回答的那位仁兄按这种方式去改吧,之前我也陷入和你一样的误区了。其实他要求的就是把所有的数字删除,而不去管他的格式。