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

[文件操作] 求教批处理只保留指定文件夹和文件

[复制链接]
 楼主| 发表于 2021-5-23 08:39:05 | 显示全部楼层
回复  smatenchen
文件和文件夹分别处理,未测试,del/rd慎用:
qixiaobin0715 发表于 2021-5-22 20:04



   
完全无效啊!
屏幕一闪,连pause命令都没执行就退出了。
最后还把批处理文件本身给删了!
您这也太不靠谱了吧?
 楼主| 发表于 2021-5-23 08:44:31 | 显示全部楼层
xp3000 发表于 2021-5-22 20:05



   
昨天的无效啊!
还出现了乱码!
这个题有这么难吗?
今天的我再试试。
非常感谢您!您这么的热心!
受教了!学习了!
 楼主| 发表于 2021-5-23 08:47:32 | 显示全部楼层
回复 5# qixiaobin0715


   
完全无效啊!
屏幕一闪,连pause命令都没执行就退出了。
最后还把批处理文件本身给删了!
您再改改吧!
 楼主| 发表于 2021-5-23 08:47:53 | 显示全部楼层
回复 6# xp3000


   
昨天的无效啊!
还出现了乱码!
这个题有这么难吗?
今天的我再试试。
非常感谢您!您这么的热心!
受教了!学习了!
发表于 2021-5-23 09:29:10 | 显示全部楼层
本帖最后由 qixiaobin0715 于 2021-5-23 10:09 编辑

回复 16# smatenchen
在代码上面已经做过说明了,未经测试。已修改,未测试。
发表于 2021-5-23 09:34:42 | 显示全部楼层
本帖最后由 qixiaobin0715 于 2021-5-23 10:08 编辑

findstr看不明白,用if吧,这样应当看得懂吧,未测试:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('dir /b') do (
  4.     set "str=%%a"
  5.     set "str1=!str:~,3!"
  6.     set "str2=!str:~-3!"
  7.     if "%%~xa"=="" (
  8.         if not !str1!==111 (
  9.             if not !str1!==222 rd "%%a"
  10.         )
  11.     )

  12.     if not "%%~xa"=="" (
  13.         if not !str2!==ini (
  14.             if not !str2!==exe (
  15.                 if not !str2!==bat (
  16.                     if not !str1!==333 (
  17.                         if not !str1!==444 del %%a
  18.                     )
  19.                 )
  20.             )
  21.         )
  22.     )

  23. )
  24. pause
复制代码
 楼主| 发表于 2021-5-23 10:20:17 | 显示全部楼层
回复 20# qixiaobin0715


好的!我再试试吧!谢谢您!
 楼主| 发表于 2021-5-23 10:33:49 | 显示全部楼层
回复 21# qixiaobin0715


非常感谢您的热心!
受教了!学习了!
发表于 2021-5-23 14:13:15 | 显示全部楼层
只要乱码,必定是你没默认ANSI编码新建文本改名为BAT,而是把其他非ANSI文件改的

要是还不行我只有删除了,两个我都试了可行
 楼主| 发表于 2021-5-23 14:16:16 | 显示全部楼层
只要乱码,必定是你没默认ANSI编码新建文本改名为BAT,而是把其他非ANSI文件改的
xp3000 发表于 2021-5-23 13:48



我把批处理内容保存为uft-8格式的文件了。
原来还有这种事啊!
记事本默认保存格式就是uft-8格式,所以没改它就直接保存了。
学习了!多谢了!
 楼主| 发表于 2021-5-23 14:29:20 | 显示全部楼层
回复 24# xp3000


   
我注意到您在批处理中用dir 命令时,没引用文件的绝对路径,
使用了默认的当前目录环境,
这岂不是非得把批处理文件放在要处理对象所在的目录里不可吗?
我若是以管理员权限运行该批处理文件时,那要如何是好呢?
发表于 2021-5-23 14:45:26 | 显示全部楼层
cd /d  必定切换目录
 楼主| 发表于 2021-5-23 18:41:17 | 显示全部楼层
回复 21# qixiaobin0715


   
您好!
if "%%~xa"=="" (
这个语句是何意?
%%~xa
这是什么变量?
怎么还带上了~x,是何意?
您好像没先定义出%%~xa这个变量吧?
没看懂,请您解说一下吧!
多谢!
 楼主| 发表于 2021-5-23 18:44:58 | 显示全部楼层
回复 27# xp3000


   
多谢!
没仔细看,漏看了您的这个语句。
受教了!您费心了!
 楼主| 发表于 2021-5-23 19:07:18 | 显示全部楼层
回复 5# qixiaobin0715


   
您好!
('dir /b /ad ^|findstr /vb "111 222"')
这里用^| 是何意?
干嘛要转义?直接用管道 | 接上不行吗?
多谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 19:44 , Processed in 0.013040 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表