本帖最后由 34205 于 2015-2-24 11:45 编辑
[已解决]如题,会遇到这样的情况:
1、需要查找软件如Photoshop插件目录Plug-ins,
2、但是我的电脑中有多个PS版本多个Plug-ins目录,
3、需要在结果上添加更多判断,以便找到正确的目录
4、我也是新手,不是秀东西,因为还有个改进的还没有解决,所以想求助。
5、增加关键词是之前没有帖子讨论的,以下代码取自论坛前辈,关于查找文件查找目录的帖子论坛已经发很多
6、需要指点:目前查到程序位置,但是如何将Plug-ins绝对路径 存到一个变量,(也就是如何直接查找目录,而不是文件)
7、其他:也希望大家指出可以改进的地方
【以下代码已经更正,已解决】- @echo off
- Mode con: cols=86 lines=36
-
- :StartSet
- rem 指定待搜索的关键词条件1
- Set "Sting1_FileName=Photoshop.exe"
- rem 指定路径中作为参照的关键词条件2
- Set "Sting2_PathName=CS6"
- :GO
- Set This_Path=%cd%
- MD TempPSCs6\
- cd TempPSCs6\
- Set TempPath=%cd%
- Set DirFind_Filesname=查找到的路径.txt
- Set DirDo_Filesname=满足关键字查找到的路径.txt
- Set DirDo_Ineed=目标Plug-ins目录绝对路径.txt
- Echo. >%TempPath%\%DirFind_Filesname%
- Cls
- echo =============================说明区==============================
- Echo.
- Echo [Photoshop插件辅助]
- Echo 学习-BAT-BAT代码-批处理实现-条件查找Photoshop插件目录
- Echo.
- Echo 本插件Bat实现以下功能:
- Echo 条件查找Photoshop.exe 以正确判断Photoshop\Plug-ins插件目录
- Echo.
- echo =========================================================S34205==
- Echo.
- Ping -n 5 127.1>nul
-
- :FindDir
- rem 指定待搜索的文件
- Echo.
- Echo 查找目标:%Sting1_FileName%
- Set String1=%Sting1_FileName%
- Echo 关键词1 :%String1%
- Set string2=%Sting2_PathName%
- Echo 关键词2 :%String2%
- Echo 批处理目录:%This_Path%
- Echo 临时的目录:%TempPath%
- Set "ext=*.8bf
- Echo.
- echo 正在搜索%Sting1_FileName%,请稍候...
- Echo.
- Echo.
- for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
- if exist %%a:\nul (
- pushd %%a:\
- echo 正在查找文件 %Sting1_FileName%,到达盘符: %%a
- for /r %%b in ("*%Sting1_FileName%") do (
- echo 正在查找文件 %Sting1_FileName%,到达路径: %%b
- if /i "%%~nxb" equ "%Sting1_FileName%" (
- set Findpath=%%b &Echo 找到路径: %%b &Echo. &Echo %%b >>%TempPath%\%DirFind_Filesname%
- )
- )
- popd
- )
- )
- Rem 判断关键词
- findstr "%string1%" %DirFind_Filesname% | findstr "%string2%" >%DirDo_Filesname%
- Echo.
- Echo.
- Echo 当前保存的路径文本内容为:
- Type %DirDo_Filesname%
- echo.
- set /p Sting1_DirDo_Filesname=<%DirDo_Filesname%
- for %%i in ("%Sting1_DirDo_Filesname%") do (
- set str_Ineed=%%~dpiPlug-ins
- Rem 转变文件名路径为文件夹路径
- )
- Echo %str_Ineed% >%TempPath%\%DirDo_Ineed%
- Echo 当前保存的目标Plug-ins目录绝对路径内容为:
- echo,%Str_Ineed%
- cd %This_Path%
- Echo %cd%
- Echo.
- for /f "delims=" %%i in ('dir /b/s/a-d %ext%') do (Echo 当前目录找到插件文件:%%i &Set Files8bf=%%i © "%%i" "%Str_Ineed%\" >nul 2>nul )
- Echo.
- if "%Files8bf%" neq "" (Echo OK,%Files8bf% &Echo OK,插件文件已经复制到指定目录 &Echo OK,为你打开Plug-ins插件目录....... &Ping -n 2 127.1>nul &Start "" "%Str_Ineed%\" &Goto Tips) else (Echo. &Echo No,当前目录下没有插件文件,为你打开Plug-ins插件目录....... &Ping -n 2 127.1>nul &Start "" "%Str_Ineed%\" &Goto out)
- :Tips
- echo Ok,去打开Photoshop查看插件结果吧.........
- Echo.
- Set "TxtDiy=071122936kfcwggmlxjjdlspp"
- mshta vbscript:clipboarddata.setdata("text","%TxtDiy%")(close)
- Echo Ok,可能需要用到的注册码(已经复制到剪贴板):%TxtDiy%
- Echo.
- :Out
- Echo.
- Echo.
- Echo OK,30秒后,退出BAT...................................................................
- Ping -n 30 127.1>nul
- Del /a /f /s /q %TempPath%\*.*
- rd /s /q "TempPSCs6\"
- exit /b
复制代码
|