吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2335|回复: 20
收起左侧

[Windows] 鼠标右键挂载文件夹为本地磁盘软件V1.0

  [复制链接]
shitou6237 发表于 2025-5-1 11:08
大家好,由于我个人经常使用Ansys软件,软件工程文件要求路径为全部英文,否则会导致workbench内部模块求解报错。因此编写了这个右键代码,主要实现效果如下:
1212.png
image.png
代码主要实现思路:
1. 安装文件:
    1.1获取当前位置,编写注册表文件,
    1.2写入注册表后,删除注册表文件。
2.执行文件:
    2.1获取右键文件夹路径,获取用户输入盘符
    2.2利用subst命令挂载路径到盘符
    2.3挂载成功后等待用户输入确认取消
代码实现主要分为两个文件:
①安装文件<map_folder_to_drive_install.bat>
[Asm] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
@echo off
setlocal enabledelayedexpansion
 
:: 获取当前批处理文件所在的文件夹路径
set "currentFolder=%~dp0"
set "batFileName=map_folder_to_drive.bat"
set "batFilePath=%currentFolder%%batFileName%"
 
:: 确保路径中的反斜杠是双反斜杠(因为 reg 文件需要转义)
set "batFilePath=%batFilePath:\=\\%"
 
:: 第一步:生成 .reg 文件
set "regFilePath=%currentFolder%map_folder_to_drive.reg"
(
    echo Windows Registry Editor Version 5.00
    echo.
    echo [HKEY_CLASSES_ROOT\Directory\shell\MapFolderToDrive]
    echo @="Map Folder to Drive"
    echo.
    echo [HKEY_CLASSES_ROOT\Directory\shell\MapFolderToDrive\command]
    echo @="\"%batFilePath%\" \"%%1\""
) > "%regFilePath%"
 
pause
pause
 
:: 第二步:应用 .reg 文件到注册表
"C:\Windows\System32\reg.exe" import "%regFilePath%"
if !errorlevel! == 0 (
    echo Successfully added to context menu.
) else (
    echo Failed to add to context menu.
)
 
:: 第三步:删除生成的 .reg 文件(可选)
del "%regFilePath%"
 
pause


②执行文件<map_folder_to_drive.bat>
[Asm] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
@echo off
setlocal enabledelayedexpansion
 
:: 第一步:获取传递过来的文件夹路径
set "currentFolder=%~1"
if not defined currentFolder (
    echo No folder path provided.
    pause
    exit /b
)
echo Current folder is: %currentFolder%
 
:: 第二步:要求用户输入盘符
:input
set /p "driveLetter=请输入要挂载的盘符(例如 E):"
set "driveLetter=%driveLetter:~0,1%"
if not defined driveLetter (
    echo 盘符不能为空,请重新输入!
    goto input
)
if not "%driveLetter%"=="%driveLetter: =%" (
    echo 盘符不能包含空格,请重新输入!
    goto input
)
if not "%driveLetter%"=="%driveLetter:~0,1%" (
    echo 盘符必须是单个字母,请重新输入!
    goto input
)
 
:: 第三步:使用subst命令挂载文件夹为指定盘符
%SystemRoot%\system32\subst.exe %driveLetter%: "%currentFolder%"
if !errorlevel! == 0 (
    echo Folder "%currentFolder%" has been mapped to drive %driveLetter%:
) else (
    echo Failed to map folder "%currentFolder%" to drive %driveLetter%:
)
 
:: 第四步:提供清除功能
:cleanup
set /p "cleanup=请输入 1 来清除挂载的磁盘,或按任意键退出:"
if "%cleanup%"=="1" (
    %SystemRoot%\system32\subst.exe %driveLetter%: /d
    if !errorlevel! == 0 (
        echo Drive %driveLetter%: has been successfully unmounted.
    ) else (
        echo Failed to unmount drive %driveLetter%:.
    )
) else (
    echo Exiting without unmounting.
)
 
pause



文件结构:
image.png
说明:
挂载成功后可以关闭bat文件界面,不用等输入,关闭后,如需取消挂载,可以再次右键输入相同盘符在提示取消后输入即可

免费评分

参与人数 7吾爱币 +8 热心值 +7 收起 理由
nrevog + 1 + 1 我很赞同!
lough_007 + 1 + 1 谢谢@Thanks!
dogox + 1 + 1 我很赞同!
kenna.cc + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
yusen7983 + 1 + 1 谢谢@Thanks!
ckloder + 1 + 1 谢谢@Thanks!
Codeman + 2 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| shitou6237 发表于 2025-5-12 09:29
konoko 发表于 2025-5-10 14:56
感谢楼主分享!很好用。。顺便打听下CMD中文乱码的问题,chcp 65001 不管用。win11

你试下用记事本把bat文件另存为ANSI格式
52soft 发表于 2025-5-1 11:22
crazyxsl 发表于 2025-5-1 13:54
aigaboy 发表于 2025-5-1 14:07
用起来很是便捷,不错的软件
zkm815 发表于 2025-5-1 16:04
字体渲染得不错,但我总觉得微软版的兼容性不好
52PJ070 发表于 2025-5-1 17:29
不错的软件,感谢楼主分享!
xipeiyao 发表于 2025-5-1 18:52
有意思。很实用的软件
j542936 发表于 2025-5-1 22:35
新建盘符的名称怎么不是文件夹的名称?
lough_007 发表于 2025-5-2 05:42
谢谢分享,
odinchu 发表于 2025-5-2 21:06
本帖最后由 odinchu 于 2025-5-2 21:10 编辑

方便的程序,
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-5-21 20:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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