要删除的TXT文件名为k1.txt 文件较多
内容是:
备份_45274150389.mrk
45274150201.mrk
45274150102.mrk
45274150111.mrk
45274150125.mrk
备份_45274150365.mrk
备份_45274150294.mrk
备份_45274150265.mrk
备份_45274150224.mrk
备份_45274150219.mrk
45274150271.mrk
74150269.mrk
45274150265.mrk
274150264.mrk
45274150263.mrk
74150247.mrk
另外要保留的TXT是k2.txt 文件较少
45274150269.mrk
74150268.mrk
45274150265.mrk
474150264.mrk
两个方向都可以,从这两个TXT删除或者避免删除都可以只要能实现这些功能就好谢谢!
整个硬盘所有MRK 文件都在这里了,肯定的是C 盘有 子目录下也有 其他盘也会有 但没有那么多 文件都是同一类型 ,期待高手解决 。
如何写批处理根据TXT文件列表批量删除文件,文件列表里面的文件到处都是 不在同一个目录下
答案:2 悬赏:80 手机版
解决时间 2021-12-29 09:37
- 提问者网友:十年饮冰
- 2021-12-28 20:34
最佳答案
- 五星知识达人网友:酒安江南
- 2021-12-28 20:48
是要删除K1.TXT中出现的MRK文件的同时保留K2.TXT中出现的MRK文件
@echo off
set "ext=.mrk"
set "s=%~dp0"
echo 正在搜索,请稍候...
for %%a in (C D E F G H I J K L M O P Q R S T U V W X Y Z) do (
if exist %%a:\nul (
pushd %%a:\
for /r %%b in ("*%ext%") do (
set delfile=
for /f "delims=" %%i in ('findstr /i "\<%%~nxb\>" %s%k2.txt') do set delfile=.
if not defined delfile echo del /a /f /q "%%b"
rem 这是测试,正式运行请删除上一行的echo
))
popd
)
pause&exit /b
@echo off
set "ext=.mrk"
set "s=%~dp0"
echo 正在搜索,请稍候...
for %%a in (C D E F G H I J K L M O P Q R S T U V W X Y Z) do (
if exist %%a:\nul (
pushd %%a:\
for /r %%b in ("*%ext%") do (
set delfile=
for /f "delims=" %%i in ('findstr /i "\<%%~nxb\>" %s%k2.txt') do set delfile=.
if not defined delfile echo del /a /f /q "%%b"
rem 这是测试,正式运行请删除上一行的echo
))
popd
)
pause&exit /b
全部回答
- 1楼网友:轮獄道
- 2021-12-28 21:55
你说的“空格空格空格9415”应该是“ 9415”(9415前有三个空格)吧。
@echo off
setlocal enabledelayedexpansion
set a=" 9415"
call :sub %a%
copy tmp.txt+2.txt 合并.txt /y>nul
start 合并.txt
del tmp.txt /f
exit
:sub
for /f "tokens=1* delims=:" %%i in ('findstr /n ".*" 1.txt') do (
if "%%j"=="" (echo.>>tmp.txt) else (
set str=%%j
>>tmp.txt echo !str:%~1=@9415!
))
goto :eof
说明:
复制到记事本中,保存为.bat文件,把这个bat文件放到1.txt文件所在目录,运行。自动打开的就是合并后的文件。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯