无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3000|回复: 13
打印 上一主题 下一主题

[求助] 搜硬盘所有目录下的所有CoreDRW.exe,生成文件路径菜单供选择

[复制链接]
跳转到指定楼层
1#
发表于 2023-11-7 15:35:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求一个批处理,搜硬盘所有目录下的所有CoreDRW.exe,生成文件路径菜单供选择1.  2.   3.   ......
如1. D:\Program Files\CorelDRAW X4\Programs\CoreDRW.exe
2. E:\Program Files\Corel\CorelDRAW 2017\Programs64\CoreDRW.exe
3.
当选择菜单1时,自动设置变量为softpath=D:\Program Files\CorelDRAW X4\Programs后面红色部份不要。
当选择菜单2时,自动设置变量为softpath=E:\Program Files\Corel\CorelDRAW 2017\Programs64后面红色部份不要。

自己试了很久总是不成功。求各位大佬帮忙!!

2#
发表于 2023-11-7 16:05:36 | 只看该作者
本帖最后由 martin313 于 2023-11-7 16:12 编辑


要求很高
路过帮顶
回复

使用道具 举报

3#
 楼主| 发表于 2023-11-7 16:11:51 | 只看该作者
主要是想放在这个批处理前面代替手动输入文件路径的步骤,虽然基本功能达到了,但批处理东抄抄、西抄抄,总感觉乱七八糟的。怎么上传不了txt文件。
@echo off & pushd %~dp0
%Windir%\System32\FLTMC.exe >nul 2>&1 || (
    ECHO CreateObject^("Shell.Application"^).ShellExecute "%~f0", "%1", "", "runas", 1 > "%TEMP%\AdminRun.vbs"
    ECHO CreateObject^("Scripting.filesystemobject"^).DeleteFile ^(WScript.ScriptFullName^) >> "%TEMP%\AdminRun.vbs"
    %Windir%\System32\CSCRIPT.exe //Nologo "%TEMP%\AdminRun.vbs"
    Exit /b
)
mode con cols=120 lines=40
:softpath
echo 输入软件路径如D:\Program Files\Corel\CorelDRAW 2020\Programs64
echo 通过桌面快捷方式打开文件位置,在地址栏中选择地址右键复制,到批处理窗口右键粘贴,回车进入插件选择菜单。
echo=
set /p softpath=请输入CorelDRAW软件所在路径:
echo=
for %%d in ("%softpath:~0,-1%") do set "Program1=%%~dpd"
for %%i in ("%softpath%") do set "FileName=%%~nxi"
set "Program1=%Program1:~0,-1%"


:softx64x86
echo 您输入的CorelDRAW软件所在路径为:%Program1%\%FileName%
echo=
if "%FileName%"=="Programs64" goto :x64
if "%FileName%"=="Programs" goto :x86
echo 路径输入错误,请回车重新输入。

pause
goto :soft
path

:x64

set "File=x64"
goto :choice_menu

:x86
set "File=x86"
goto :choice_menu

:choice_menu
echo 请选择需要安装的插件:
echo=
echo 1. 安装魔镜插件 (支持x4-2022)
echo=
echo 2. 安装CD印前小精灵2.0(支持x4-2022,x86版要先从C:\Windows下导入工作区,工具栏勾选CD小精灵。)
echo=
echo 3. 安装ymxkDoc 23.1.6.2插件 (在工具栏勾选ymxkDoc。只支持X7及以上版本)
echo=
echo 4. 安装YG增强插件、eCut6插件与缩略图显示插件
echo=
echo 5. 安装win10显示菜单插件  (X4 X5显示菜单插件)
echo=
echo 6. 返回重新输入CorelDRAW软件所在路径
echo=
set /p "choice=请输入数字选项(1-6): "
if %choice%==1 (
    set "source=tools\hicetea"
    set "File2=hicetea.7z"
) else if %choice%==2 (
    set "source=tools\YangCD"
    set "File2=YangCD.7z"
) else if %choice%==3 (
    set "source=tools\ymxkDoc"
    set "File=ymxkDoc"
    goto :choice_a
) else if %choice%==4 (
    goto :choice_c
) else if %choice%==5 (
    set "source=tools\MenuPatch"
    set "File=x86"
    goto :choice_b
) else if %choice%==6 (
  goto :softpath
) else (
    echo 按回车返回本菜单,重新输入。
    pause >nul
    goto :choice_menu
)
REM 解压安装插件*.7z文件
    7za.exe x -y "%cd%\%source%\%File2%" -oC:\
    7za.exe x -y "%cd%\%source%\%File%.7z" "-o%Program1%"
echo 按任意键返回插件选择菜单或者关闭退出
        pause >nul
        goto :choice_menu

:choice_a
REM 解压安装插件*.7z文件
    7za.exe x -y "%cd%\%source%\%File%.7z" "-o%Program1%\%FileName%"
echo 按任意键返回插件选择菜单或者关闭退出
        pause >nul
        goto :softx64x86

:choice_b
REM 解压安装插件*.7z文件
    7za.exe x -y "%cd%\%source%\%File%.7z" "-o%Program1%"
echo 按任意键返回插件选择菜单或者关闭退出
        pause >nul
        goto :softx64x86

:choice_c
set /p ver=请输入CorelDRAW软件版本号(X3-X8或2017-2022):
if /i %ver%==X3 goto :choice_d
if /i %ver%==X4 goto :choice_d
if /i %ver%==X5 goto :choice_d
if /i %ver%==X6 goto :choice_d
if /i %ver%==X7 goto :choice_d
if /i %ver%==X8 goto :choice_d
if /i %ver%==2017 goto :choice_d
if /i %ver%==2018 goto :choice_d
if /i %ver%==2019 goto :choice_d
if /i %ver%==2020 goto :choice_d
if /i %ver%==2021 goto :choice_d
if /i %ver%==2022 goto :choice_d
echo 输入错误,请重新输入(如X4)。
goto :choice_c

:choice_d
echo=
echo 1. 安装YG增强插件  (支持x4-2022,在设置窗口中点创建桌面快捷方式完成YG插件安装)
echo=
echo 2. 安装eCut6插件 (支持x3-2021,86位先从C:\eCut下导入相应工作区,工具栏勾选eCut6)
echo=
echo 3. 安装缩略图显示插件
echo=
echo 4. 返回上一级插件选择菜单
set "soft=CorelDRAW %ver%"
echo=
set /p "choice=请输入数字选项(1-4): "
if %choice%==1 (
    set "source=tools\YG"
    set "File2=YG.7z"
    goto :choice_yg
) else if %choice%==2 (
    set "source=tools\other"
    set "File2=eCut.7z"
    set "File3=%soft%\eCutx86x64.7z"
) else if %choice%==3 (
    start /wait %cd%\tools\other\"%soft%"\ShellExt.msi /quiet
    goto :choice_d
) else if %choice%==4 (
    goto :softx64x86
) else (
    echo 按回车返回本菜单,重新输入。
    pause >nul
    goto :choice_d
)
REM 解压安装插件*.7z文件
    7za.exe x -y "%cd%\%source%\%File2%" -oC:\
    7za.exe x -y "%cd%\%source%\%File3%" "-o%Program1%"
echo 按任意键返回本插件选择菜单或者关闭退出
        pause >nul
        goto :choice_d

:choice_yg
REM 解压安装插件*.7z文件
    7za.exe x -y "%cd%\%source%\%File2%" -oC:\
    7za.exe x -y "%cd%\%source%\%File%.7z" "-o%Program1%"

set "sourcecfg=C:\YG\%File%.cfg"
set "new_Filename=%Program1%\%FileName%\CorelDRW.exe"

set "new_ShortcutName=%soft% YG"

set "new_RunningTime=0"
set "new_ReturnNumOfSeconds=100"
set "new_DateTime=18-08-2018 00:00:00"
set "tempfile=%temp%\tempfile.cfg"
echo [General] > "%tempfile%"
echo Filename=%new_Filename% >> "%tempfile%"

echo Params= >> "%tempfile%"
echo ShortcutName=%new_ShortcutName% >> "%tempfile%"
echo StartIn= >> "%tempfile%"

echo RunningTime=%new_RunningTime% >> "%tempfile%"

echo ImmediateMode=0 >> "%tempfile%"

echo ReturnToCurrTime=1 >> "%tempfile%"

echo ReturnNumOfSeconds=%new_ReturnNumOfSeconds% >> "%tempfile%"
echo DateTimeMode=1 >> "%tempfile%"

echo AddTimeUnit=4 >> "%tempfile%"

echo AddTimeValue=-1 >> "%tempfile%"
echo DateTime=%new_DateTime% >> "%tempfile%"
echo WinPos=2C 00 00 00 00 00 00 00 01 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 82 01 00 00 BF 00 00 00 D3 03 00 00 40 02 00 00 >> "%tempfile%"

move /y "%tempfile%" "%sourcecfg%" >nul 2>&1

start "" "C:\YG\%File%.exe"
echo 点击创建桌面快捷方式完成YG插件安装,点击关闭,然后运行带YG命名的corel快捷键即可。
echo 按任意键返回本插件选择菜单或者关闭退出
        pause >nul
        goto :choice_d


点评

windows软件位置都可以在注册表找到的,为什么必须要全盘搜呢?好慢的哦 set rxprd= set RegKey=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion%uninstall\{94B97E1E-9B67-4012-A126-6319E211A298}_is1 for /  详情 回复 发表于 2023-11-7 16:26
回复

使用道具 举报

4#
发表于 2023-11-7 16:26:29 | 只看该作者
本帖最后由 liuzhaoyzz 于 2023-11-7 16:27 编辑
xiao75918 发表于 2023-11-7 16:11
主要是想放在这个批处理前面代替手动输入文件路径的步骤,虽然基本功能达到了,但批处理东抄抄、西抄抄,总 ...

windows软件位置都可以在注册表找到的,为什么必须要全盘搜呢?好慢的哦。全盘搜的话,有的地方的程序根本就不能运行咋办?正确的安装位置才能正常运行,这个要从注册表获取。

set rxprd=
set RegKey=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{94B97E1E-9B67-4012-A126-6319E211A298}_is1
for /f "tokens=2,*" %%I in ('reg query %RegKey% /v InstallLocation') do set rxprd="%%Jrxprd.exe"
rem echo %rxprd%
比如rxprd.exe软件,可以用上面的代码搜索。

CoreDRW.exe应该可以照葫芦画瓢。

回复

使用道具 举报

5#
发表于 2023-11-7 16:27:57 | 只看该作者
本帖最后由 9zhmke 于 2023-11-7 16:30 编辑

如果追求效率的话,可以用AU3做个脚本,用Everything秒搜,再读出列表中的路径,做后面的设置......

很好奇地询问一下,为什么不把CDR软件都放到统一的文件夹下面呢?比如统一都放到D:\Program Files、D:\tools、E:\CorelDRAW之类,被放在很多不同文件夹下是多用户习惯不同造成的吗?
回复

使用道具 举报

6#
发表于 2023-11-7 16:39:54 | 只看该作者
支持了
回复

使用道具 举报

7#
 楼主| 发表于 2023-11-7 16:45:44 | 只看该作者
做的一个插件集合,因为不同的人习惯不同,安装软件的路径不同,不过最后的Programs\CoreDRW.exe
与Programs64\CoreDRW.exe是不会改变的,Programs代表86位软件,Programs64代表是64位软件。搜注册表的方式也不可行,有些绿化的不会写Uninstall,也有不少卸载残留的。

点评

如果你不介意界面的话,直接在everything.exe里设置个宏,定义个快捷键,接个键就可以出来了.....  详情 回复 发表于 2023-11-7 21:11
回复

使用道具 举报

8#
发表于 2023-11-7 18:37:47 | 只看该作者
everything 搜索,发送桌面快捷方式
回复

使用道具 举报

9#
发表于 2023-11-7 21:11:12 | 只看该作者
xiao75918 发表于 2023-11-7 16:45
做的一个插件集合,因为不同的人习惯不同,安装软件的路径不同,不过最后的Programs\CoreDRW.exe
与Progra ...

如果你不介意界面的话,直接在everything.exe里设置个宏,定义个快捷键,接个键就可以出来了.....
回复

使用道具 举报

10#
发表于 2023-11-7 21:54:26 | 只看该作者
学习学习
回复

使用道具 举报

11#
 楼主| 发表于 2023-11-8 08:58:36 | 只看该作者
我在win11下没搜到everything.exe,不知是没有还是精简了。用软件搜还不如直接桌面快捷键打开文件位置来复制路径粘贴到cmd窗口来得快。搜文件生成选择菜单,按数字123来选择只是想省掉复制路径粘贴到cmd窗口这个步骤。
回复

使用道具 举报

12#
发表于 2023-11-8 10:35:33 | 只看该作者
搜索没完成,还是菜单没完成?
回复

使用道具 举报

13#
 楼主| 发表于 2023-11-8 11:28:13 | 只看该作者
都没完成,批处理一闪而过,什么也没返回
@echo off

setlocal enabledelayedexpansion


set "search_path=C:\Path\To\Search"

set "output_file=%temp%\temp.cmd"


REM 定义递归搜索函数
REM 参数: 搜索路径和输出文件
function search_files() {

    set "pathsoft=%~1"

    set "output=%~2"

   
    for /r "%pathsoft%" %%f in (CorelDRW.exe) do (

        echo set /p pathsoft=%%~dpf >> "%output%"

        REM 递归搜索子目录

        search_files "%%~dpf" "%output%"

    )

}


REM 调用递归搜索函数,开始搜索

search_files "%search_path%" "%output_file%"



REM 执行后续代码,处理搜索结果(如果有需要)

REM ...


REM 删除临时文件

del "%output_file%"
回复

使用道具 举报

14#
发表于 2024-2-14 13:03:22 | 只看该作者
学习学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-14 09:30

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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