Board logo

标题: [文件操作] 批处理如何用目录作为变量? [打印本页]

作者: freesoft00    时间: 2015-5-2 10:21     标题: 批处理如何用目录作为变量?

比如一个文件下面
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  变量
复制代码

作者: pcl_test    时间: 2015-5-2 11:08

c:\www\ttt\eee\8899_3344_5566qqqq\333.exe
这样形式的如何决定截取部分?
作者: 522235677    时间: 2015-5-3 14:42

本帖最后由 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
复制代码

作者: gamedd    时间: 2015-5-4 21:27

回复 3# 522235677


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

我要删除红色的就是这个随机的文件夹,
作者: 522235677    时间: 2015-5-5 09:20

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





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2