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

[文件操作] [已解决]求助批处理查找多个文件并设置变量路径

[复制链接]
发表于 2021-11-20 06:33:40 | 显示全部楼层 |阅读模式
  1. pushd %~dp0
  2. set pth=%~dp0
  3. for /l %%i in (1 1 3) do (for /f "delims=" %%a in (for %%i in (test1.dll test2.dll test3.dll) do ('dir /b /s /a-d "%pth%"^|find /i %%i')) do (set pth%%i=%%~dpa)
  4. echo %pth1%
  5. echo %pth2%
  6. echo %pth3%
  7. pause
复制代码
想在当前目录下查找子文件夹中的test1.dll、test2.dll、test3.dll并分别设置路径变量pth1、pth2、pth3,不知哪里出错,求大神帮忙,感谢感谢!
发表于 2021-11-20 07:40:46 | 显示全部楼层
不建议代码挤成一堆,别人看着费劲,自己有时也会发蒙:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set n=0
  4. for /r %%a in (test1.dll test2.dll test3.dll) do (
  5.     set /a n+=1
  6.     set path!n!=%%~dpa
  7. )
  8. pause
复制代码
 楼主| 发表于 2021-11-20 08:58:41 | 显示全部楼层
回复 2# qixiaobin0715

大神,经测试这样的话三个都只是批处理的当前目录
 楼主| 发表于 2021-11-20 09:01:40 | 显示全部楼层
需要在当前目录的子文件夹(多级)里查找到这三个文件,并获取这三个文件的绝对路径,再各自设置为变量
发表于 2021-11-20 09:39:31 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /r %%a in (test1.dll test2.dll test3.dll) do (
  4.     if exist "%%a" (
  5.         if not "%%~dpa"=="%~dp0" (
  6.             set str=%%~na
  7.             set path!str:~-1!=%%~dpa
  8.        )
  9.     )
  10. )
  11. pause
复制代码
 楼主| 发表于 2021-11-20 09:56:55 | 显示全部楼层
回复 5# qixiaobin0715


  大神,还是不行,555555。。。好难哦
发表于 2021-11-20 10:03:12 | 显示全部楼层
使用记事本打开bat文件,另存为ansi编码,再运行:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('dir /s /b /a-d test1.dll test2.dll test3.dll') do (
  4.     set str=%%~na
  5.     set path!str:~-1!=%%~dpa
  6. )
  7. pause
复制代码
 楼主| 发表于 2021-11-20 10:21:43 | 显示全部楼层
还是不行哦
发表于 2021-11-20 10:23:31 | 显示全部楼层
回复 8# maghreb


    感觉你在嘲笑他...
发表于 2021-11-20 10:33:48 | 显示全部楼层
回复 8# maghreb


建议以后不要再说“不行”、“一闪而过”、“没有反应”之类的话,因为这对于想要给你进一步帮助的人来说没有任何意义。希望大家都能学会的一个知识点是:如何查看代码的报错信息。

请参考Q-01观察一下哪行代码在报错以及详细的报错信息:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ

评分

参与人数 1技术 +1 收起 理由
cmd1152 + 1 支持

查看全部评分

发表于 2021-11-20 11:04:35 | 显示全部楼层
回复 8# maghreb
最好将测试文件夹打包发到网盘上,看看是否有人能帮你解决。
 楼主| 发表于 2021-11-20 11:37:25 | 显示全部楼层
回复 9# cmd1152


    你想多了,他是我心中的大神,每遇问题都是他第一个帮我解决,而且他很热心,我不会嘲笑任何人
 楼主| 发表于 2021-11-20 11:37:52 | 显示全部楼层
回复 10# Batcher


    好的,以后不会了
 楼主| 发表于 2021-11-20 11:38:42 | 显示全部楼层
回复 11# qixiaobin0715


    非常感谢大神!!!

    我是在任何位置新建几个文件夹和空文件名来测试的
发表于 2021-11-20 11:59:02 | 显示全部楼层
回复 14# maghreb


    请把你的bat文件和目录结构打包上传到阿里云盘或百度网盘,我试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 19:12 , Processed in 0.032066 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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