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

[文件操作] 批处理怎么删除指定文件(没有后缀名)?

我有文件的路径,例如:C:\a\b\c
注意c是一个没有后缀名的文件
我有个文件清单(200多个要删除)
del C:\a\b\c
C:\a\b\下有的不止一个文件
所以还是得精确删除
只是系统会默认c为文件夹……

回复  rpg2813


其实真正操作xlsx的不是BAT而是:
cscript //nologo //e:jscript "%~f0" "%~dp0哈希值 ...
Batcher 发表于 2021-1-12 14:19



    楼上的都是大神

TOP

回复 24# rpg2813


其实真正操作xlsx的不是BAT而是:
cscript //nologo //e:jscript "%~f0" "%~dp0哈希值校对.xlsx"
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

文件列表是 Excel 文件,估计是转换成 txt 的时候出问题了。
以下脚本保存为 Test.bat,编码选 ANSI,与 哈 ...
WHY 发表于 2021-1-11 22:26



    大神,请收下我的膝盖,问题解决,然后重新比对了一遍,完全正确~~

但是代码只能看懂一半,还得逐步消化一下(特别是批处理居然可以操纵xlsx,把我震惊了)

TOP

本帖最后由 WHY 于 2021-1-12 09:20 编辑

文件列表是 Excel 文件,估计是转换成 txt 的时候出问题了。
以下脚本保存为 Test.bat,编码选 ANSI,与 哈希值校对.xlsx 存放在同一个目录,xlsx不需要转换成txt
右键单击 Test.bat,选择 "以管理员身份运行"。我测试没有问题。
  1. @if(0)==(0) echo off
  2. for /f "tokens=*" %%i in ('cscript //nologo //e:jscript "%~f0" "%~dp0哈希值校对.xlsx"') do (
  3.     if exist "%%~fi" del /f /a /q "%%~fi"
  4. )
  5. pause & exit
  6. @end
  7. var objExcel = new ActiveXObject('Excel.Application');
  8. objExcel.Visible = true;
  9. //objExcel.DisplayAlerts = false;
  10. var objBook  = objExcel.WorkBooks.Open(WSH.Arguments(0));
  11. var objSheet = objBook.WorkSheets(1);
  12. var rows = objSheet.UsedRange.Rows.Count + 1;       //sheet1 行数
  13. for(var i=1; i<=rows; i++){
  14.     var v2 = objSheet.Cells(i, 2).Value;            //第2列,文件路径
  15.     var v5 = objSheet.Cells(i, 5).Value;            //第5列,校验结果
  16.     if( v2 != null && v5 == '错误' ) WSH.Echo( v2 );
  17. }
  18. objBook.Close();
  19. objExcel.Quit();
复制代码

TOP

我把00和oa两个文件夹放到百度网盘了,大概50m
然后还有我的sha-1值校对表,我是用hashtool批量算出来的值
校对“错误”的需要删除掉

链接:https://pan.baidu.com/s/1Nn5wK4ibxyZPdqzxU1zThQ
提取码:1234

TOP

本帖最后由 WHY 于 2021-1-11 09:24 编辑

真的好神奇。
怀疑是文件清单结尾带有不可见字符,如:多余的空格、tab符、多余的回车符等。
试试用Notepad++、UltraEdit 等16进制文本编辑软件打开看看吧。
可以的话用附件发一个文件清单让大家测试。

TOP

回复 17# qixiaobin0715


    依然显示找不到系统路径

而且我把其中文件改名成     a.txt                 用    del /q /s d:\test\a.txt   也不行

不知道到底什么情况

TOP

回复 16# rpg2813
5楼代码不行吗 查一下其他因素呢

TOP

还要仔细检查一下,你得到的路径是否完全正确。

TOP

回复 15# rpg2813
你把其中一个路径放到下面代码中试试,看看是哪里的问题:
  1. @echo off
  2.     for %%i in ("路径") do del /a/f "%%i"
  3. pause
复制代码

TOP

回复 12# terse


    我发的4楼,那些00/de/后面的40位字母的是文件,而且00/de/下面可能有别的文件,我是希望针对清单来删除

TOP

本帖最后由 rpg2813 于 2021-1-10 19:14 编辑

回复 14# qixiaobin0715


    5楼的代码执行起来没有效果,加了13楼代码

提示:系统找不到指定的路径
还是把那个40位的东西当做了文件夹,而不是文件,文件我也看了,不是只读的


8楼的代码执行提示,命令语法不正确

我在服务器操作的,和这没关系吧?2012系统

TOP

回复 6# rpg2813
你的文件可能是只读属性,如果要单独保存,将8楼代码的move改为copy试试;如果要move的话,要在move前修改文件属性,加一条attribute -r

TOP

回复 9# rpg2813
我觉得是你的文件属性问题,用强制删除del /a/f。5楼代码再试试。

TOP

返回列表