[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 tmplinshi 于 2011-4-1 21:45 编辑
for /f "delims=" %%a in ('dir /b^|findstr /v /g:1.txt') do del /q %%a
zm900612 发表于 2011-4-1 16:07

很多漏洞:

1、del /q "%%a"

2、dir /b /a:-d

3、findstr 是不是应该加上:

/x 匹配整行
/l 按字面匹配

另外,斜线(“/”或“\”)跟中文字符并在一起时,会出现 BUG。例如:

2行.txt:
  1. d:\1.txt
  2. d:\中文.txt
复制代码
3行.txt:
  1. d:\1.txt
  2. d:\中文.txt
  3. d:\2.txt
复制代码
执行 findstr /vxlg:2行.txt 3行.txt,结果为:
d:\中文.txt
d:\2.txt

如果斜线和中文字符没有并在一起,例如 d:\o中文.txt,则结果正常。

TOP

本帖最后由 tmplinshi 于 2011-4-1 19:08 编辑
  1. @echo off
  2. SetLocal
  3. set "file=文件列表.txt"
  4. rem 把列表中的文件名设为变量
  5. for /f "usebackq delims=" %%i in ("%file%") do set ?%%~nxi=d
  6. rem 提取列表中的第一行路径,再从该路径提取文件夹路径
  7. set /p FullPath=<"%file%"
  8. for %%i in ("%FullPath%") do set Folder=%%~dpi
  9. rem 罗列文件夹中的文件,如果文件名没有设为变量,则删除该文件
  10. for %%i in ("%Folder%\*") do (
  11.     if not defined ?%%~nxi del /a /f "%%i"
  12. )
复制代码
2

评分人数

TOP

返回列表