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

[文件操作] 批处理如何用目录作为变量?

比如一个文件下面
c:\www\ttt\eee 有一个文件222.exe,这个222.exe是在eee下面的子目录中的,所以需要先搜索确定其位置
dir /s /b 222.exe
比如搜索到的路径是这样的
c:\www\ttt\eee\8899_3344_5566\222.exe
我需要取的变量是红色部分,这个应该如何取,怎么写。因为还有其它需要处理的文件,都是在c:\www\ttt\eee,只是子目录不同。但是红色部分的字符格式是一样的,有些是
c:\www\ttt\eee\8899_3344_5566qqqq\333.exe
这样的形式的,我也只取红色部分的字符作为变量。
  1. dir /s /b 222.exe
  2. 取得路径中红色部分的变量。
  3. echo  变量
复制代码

c:\www\ttt\eee\8899_3344_5566qqqq\333.exe
这样形式的如何决定截取部分?

TOP

本帖最后由 522235677 于 2015-5-3 14:49 编辑
  1. @echo off & setlocal enabledelayedexpansion
  2. pushd c:\www\ttt\eee
  3. for /f "delims=" %%a in ('dir /b /s 222.exe') do (
  4. set str=%%~dpa
  5. for /f "delims=" %%b in ("!str:~0,-1!") do set str=%%~nb
  6. )
  7. set str=%str:~0,14%
  8. echo %str%
  9. pause
复制代码

TOP

回复 3# 522235677


    请问,我要怎么实现删除C盘目录下所有随机生成的文件夹? 文件夹名字是随机的,但每个随机生成的目录下面都有一个子目录,子目录的名字都是一样的叫 uptcsl  ,而这个子目录下面又有一个文件叫 update.udf  
如:
c:\windows\)r%{5l!@\uptcsl\update.udf   
c:\Program Files\2@hkt6&)^9s(!\uptcsl\update.udf
正如上面这两个目录, 随机目录下面的子目录名和里面的文件名是一样的,现在要实现把这种随机生成的文件夹以及下面的子目和文件一起给删除掉,这样的处理方法应该做才能实现?

我要删除红色的就是这个随机的文件夹,

TOP

  1. @echo off
  2. c:
  3. for /f "delims=" %%a in ('dir /s /b /ad^|find "uptcsl"') do rd /s /q "%%~dpa"
  4. pause
复制代码

TOP

返回列表