标题: [文件操作] 批处理怎么删除指定文件(没有后缀名)? [打印本页]
作者: rpg2813 时间: 2021-1-9 02:36 标题: 批处理怎么删除指定文件(没有后缀名)?
我有文件的路径,例如:C:\a\b\c
注意c是一个没有后缀名的文件
我有个文件清单(200多个要删除)
del C:\a\b\c
C:\a\b\下有的不止一个文件
所以还是得精确删除
只是系统会默认c为文件夹……
作者: terse 时间: 2021-1-9 10:46
C:\a\b\ 文件夹下运行
为防误删 请备份文件夹后运行- for %%i in (*.) do del "%%i"
复制代码
作者: rpg2813 时间: 2021-1-9 11:17
回复 2# terse
感谢回复,可是我有200多个不同路径……请教有没有更好的方法
作者: rpg2813 时间: 2021-1-9 11:22
如图,情况这样的,部署了火绒企业版
他是把补丁文件命名为sha-1值(没有后缀名)
然后一些补丁终端打不上去
后来发现是文件不完整造成的(就是sha-1值不对)
我现在通过各种方法弄到了这些错误sha-1值的文件的路径清单
现在就是怎么把这些文件一次性删掉的问题
作者: qixiaobin0715 时间: 2021-1-9 11:45
本帖最后由 qixiaobin0715 于 2021-1-10 08:08 编辑
回复 4# rpg2813
将文件清单存为编码ANSI的a.txt文件,与下面的bat代码放在同一个文件夹:- echo off
- for /f "delims=" %%a in (a.txt) do (
- for %%i in ("%%a") do del /a/f %%i
- )
- pause
复制代码
作者: rpg2813 时间: 2021-1-9 14:34
回复 5# qixiaobin0715
感谢,火绒工程师在排查这个问题,因为正常来说用工具下载以及同步到服务器是经过sha-1值校验的
呃,他们希望我把这些文件单独保存一下……
就是把这些文件复制(剪切)到一个新的文件夹就好
作者: rpg2813 时间: 2021-1-9 14:39
还有如果对a.txt的列表排除删除(就是除了这些清单的删除)又是怎么弄?
作者: qixiaobin0715 时间: 2021-1-9 15:51
本帖最后由 qixiaobin0715 于 2021-1-9 16:00 编辑
- @echo off
- md C:\folder1
- for /f "delims=" %%a in (a.txt) do (
- for %%i in ("%%a") do move "%%i" "C:\folder1"
- )
- pause
复制代码
回复 7# rpg2813
作者: rpg2813 时间: 2021-1-9 15:52
回复 5# qixiaobin0715
代码不知道哪里不对,就是那个40位数字的是文件,批处理总把其认为是路径
作者: terse 时间: 2021-1-9 18:06
回复 3# rpg2813
试一下加个R参数 搜索子目录
作者: rpg2813 时间: 2021-1-10 00:09
回复 10# terse
怎么加……
作者: terse 时间: 2021-1-10 00:53
看显示的是否是你想得到的文件 如果可以去掉第二行ECHO
另外 判断目录应该可以的吧 IF EXIST C:\A\B\C\- @echo off
- for /r %%i in (*.) do echo del "%%i"
- pause
复制代码
回复 11# rpg2813
作者: qixiaobin0715 时间: 2021-1-10 08:12
回复 9# rpg2813
我觉得是你的文件属性问题,用强制删除del /a/f。5楼代码再试试。
作者: qixiaobin0715 时间: 2021-1-10 08:49
回复 6# rpg2813
你的文件可能是只读属性,如果要单独保存,将8楼代码的move改为copy试试;如果要move的话,要在move前修改文件属性,加一条attribute -r
作者: rpg2813 时间: 2021-1-10 16:07
本帖最后由 rpg2813 于 2021-1-10 19:14 编辑
回复 14# qixiaobin0715
5楼的代码执行起来没有效果,加了13楼代码
提示:系统找不到指定的路径
还是把那个40位的东西当做了文件夹,而不是文件,文件我也看了,不是只读的
8楼的代码执行提示,命令语法不正确
我在服务器操作的,和这没关系吧?2012系统
作者: rpg2813 时间: 2021-1-10 19:10
回复 12# terse
我发的4楼,那些00/de/后面的40位字母的是文件,而且00/de/下面可能有别的文件,我是希望针对清单来删除
作者: qixiaobin0715 时间: 2021-1-10 21:26
回复 15# rpg2813
你把其中一个路径放到下面代码中试试,看看是哪里的问题:- @echo off
- for %%i in ("路径") do del /a/f "%%i"
- pause
复制代码
作者: qixiaobin0715 时间: 2021-1-10 23:17
还要仔细检查一下,你得到的路径是否完全正确。
作者: terse 时间: 2021-1-10 23:45
回复 16# rpg2813
5楼代码不行吗 查一下其他因素呢
作者: rpg2813 时间: 2021-1-11 00:56
回复 17# qixiaobin0715
依然显示找不到系统路径
而且我把其中文件改名成 a.txt 用 del /q /s d:\test\a.txt 也不行
不知道到底什么情况
作者: WHY 时间: 2021-1-11 09:18
本帖最后由 WHY 于 2021-1-11 09:24 编辑
真的好神奇。
怀疑是文件清单结尾带有不可见字符,如:多余的空格、tab符、多余的回车符等。
试试用Notepad++、UltraEdit 等16进制文本编辑软件打开看看吧。
可以的话用附件发一个文件清单让大家测试。
作者: rpg2813 时间: 2021-1-11 18:12
我把00和oa两个文件夹放到百度网盘了,大概50m
然后还有我的sha-1值校对表,我是用hashtool批量算出来的值
校对“错误”的需要删除掉
链接:https://pan.baidu.com/s/1Nn5wK4ibxyZPdqzxU1zThQ
提取码:1234
作者: WHY 时间: 2021-1-11 22:26
本帖最后由 WHY 于 2021-1-12 09:20 编辑
文件列表是 Excel 文件,估计是转换成 txt 的时候出问题了。
以下脚本保存为 Test.bat,编码选 ANSI,与 哈希值校对.xlsx 存放在同一个目录,xlsx不需要转换成txt
右键单击 Test.bat,选择 "以管理员身份运行"。我测试没有问题。- @if(0)==(0) echo off
- for /f "tokens=*" %%i in ('cscript //nologo //e:jscript "%~f0" "%~dp0哈希值校对.xlsx"') do (
- if exist "%%~fi" del /f /a /q "%%~fi"
- )
- pause & exit
- @end
-
- var objExcel = new ActiveXObject('Excel.Application');
- objExcel.Visible = true;
- //objExcel.DisplayAlerts = false;
- var objBook = objExcel.WorkBooks.Open(WSH.Arguments(0));
- var objSheet = objBook.WorkSheets(1);
- var rows = objSheet.UsedRange.Rows.Count + 1; //sheet1 行数
-
- for(var i=1; i<=rows; i++){
- var v2 = objSheet.Cells(i, 2).Value; //第2列,文件路径
- var v5 = objSheet.Cells(i, 5).Value; //第5列,校验结果
- if( v2 != null && v5 == '错误' ) WSH.Echo( v2 );
- }
-
- objBook.Close();
- objExcel.Quit();
复制代码
作者: rpg2813 时间: 2021-1-12 12:36
文件列表是 Excel 文件,估计是转换成 txt 的时候出问题了。
以下脚本保存为 Test.bat,编码选 ANSI,与 哈 ...
WHY 发表于 2021-1-11 22:26
大神,请收下我的膝盖,问题解决,然后重新比对了一遍,完全正确~~
但是代码只能看懂一半,还得逐步消化一下(特别是批处理居然可以操纵xlsx,把我震惊了)
作者: Batcher 时间: 2021-1-12 14:19
回复 24# rpg2813
其实真正操作xlsx的不是BAT而是:
cscript //nologo //e:jscript "%~f0" "%~dp0哈希值校对.xlsx"
作者: rpg2813 时间: 2021-1-13 01:44
回复 rpg2813
其实真正操作xlsx的不是BAT而是:
cscript //nologo //e:jscript "%~f0" "%~dp0哈希值 ...
Batcher 发表于 2021-1-12 14:19
楼上的都是大神
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |