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

[文件操作] 修改批处理保留指定字符串开头的文件{已经解决}

本帖最后由 lovekix 于 2021-7-5 08:16 编辑

C:\Windows\servicing\Packages  

文件夹下有很多文件

我想 保留指定 开头为 Microsoft-Windows- 的文件

我写了一个 批处理  不知道 问题出在什么地方
  1. for /f "delims=" %%i in ('dir /b /a-d Microsoft-Windows-*') do del /a /f /q %%i
复制代码

回复 10# lovekix 差不多吧,前面还要加set st=!file:~0,*!,*代表检测的字符的长度

TOP

本帖最后由 lovekix 于 2021-6-17 13:30 编辑

回复 18# went
  1. @echo off
  2. cd /d "C:\Windows\servicing\Packages"
  3. set "skip=0"
  4. for /f "delims=:" %%i in ('findstr /b /n ":list" "%~0"') do set "skip=%%i"
  5. for /f "usebackq skip=%skip% delims=" %%i in ("%~0") do call set "save=%%save%%:%%i"
  6. for /f "delims=" %%i in ('dir /b /a-d ^| findstr /b /v "%save::= %"') do del %%i
  7. pause&exit
  8. REM 开头保存字符串,一行一个
  9. :list
  10. Microsoft-Windows-2
  11. Package
  12. Microsoft-Windows-Branding
复制代码
感谢  went   完美解决

把  源码发出来  备份  防止丢失

TOP

回复 17# lovekix


    你可以点我头像加我qq

TOP

本帖最后由 lovekix 于 2021-6-17 13:08 编辑

回复 16# went


    就是一闪  什么也没有  我录了屏  不知道 怎么发

TOP

回复 14# lovekix


    我这儿不会闪退,有没有截图

TOP

回复 12# qixiaobin0715


    这个 不行     这个运行的是   包含这些字符的     不是开头的

TOP

回复 13# went


    是ansi编码  


TOP

回复 9# lovekix

要保存ansi编码

TOP

未测试,del慎用:
  1. @echo off
  2. set var="Package Microsoft-Windows-"
  3. cd /d "C:\Windows\servicing\Packages"
  4. for /f "delims=" %%i in ('dir /b /a-d ^| findstr /bv %var%') do del /a /f /q "%%i"
  5. pause
复制代码

TOP

回复 8# went


    研究半天   还是不行

TOP

回复 7# 路过
[/url] went

    是不是  每加一行
  1. if "!st!" neq "Package" (
  2. del /a /f /q %%i
复制代码

TOP

本帖最后由 lovekix 于 2021-6-16 10:33 编辑

回复 8# went
  1. @echo off
  2. cd /d "C:\Windows\servicing\Packages"
  3. for /f "delims=:" %%i in ('findstr /b /n ":list" "%~0"') do for /f "delims=" %%a in ('more +%%i "%~0"') do call set "save=%%save%%:%%a"
  4. for /f "delims=" %%i in ('dir /b /a-d ^| findstr /b /v "%save::= %"') do del %%i
  5. pause&exit
  6. REM 开头保存字符串,一行一个
  7. :list
  8. Microsoft-Windows-
  9. Package
复制代码
好像有问题    一闪就退出了  没有 任何操作

TOP

回复 6# lovekix
  1. @echo off
  2. cd /d "C:\Windows\servicing\Packages"
  3. for /f "delims=:" %%i in ('findstr /b /n ":list" "%~0"') do for /f "delims=" %%a in ('more +%%i "%~0"') do call set "save=%%save%%:%%a"
  4. for /f "delims=" %%i in ('dir /b /a-d ^| findstr /b /v "%save::= %"') do echo %%i
  5. pause&exit
  6. REM 开头保存字符串,一行一个
  7. :list
  8. Microsoft-Windows-
  9. Package
复制代码

TOP

回复 4# lovekix
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /b /a-d') do (
  4. set file=%%~i
  5. set st=!file:~0,18!
  6. if "!st!" neq "Microsoft-Windows-" (
  7. set st=!file:~0,7!
  8. if "!st!" neq "Package" (
  9. del /a /f /q %%i
  10. )
  11. )
  12. )
  13. pause
  14. exit
复制代码

TOP

返回列表