gpt4 book ai didi

batch-file - 在任何映射驱动器中查找特定文件夹并报告其完整的 UNC 路径

转载 作者:行者123 更新时间:2023-12-01 23:41:02 25 4
gpt4 key购买 nike

我想知道是否可以使用批处理文件在 PC 的任何映射驱动器中查找特定文件夹并让它报告文件夹的完整 UNC 路径。假设 PC 的驱动器映射为 N:\& S:\(或任何通常的网络驱动器号)。该文件夹可以在任一文件夹中,我运行一些代码来查找文件夹的位置,它将位于驱动器共享的根目录中(避免递归子文件夹扫描),例如N:\Special_Folder 但是,代码的最终结果将报告 FULL UNC,例如

找到文件夹!...

\server-vm01\data\shared_area\special_folder

希望这是有道理的。我已经尝试使用一些我已经用来识别 USB 内存棒的代码,但是很难将它移植到上述需求中。任何指针都会很棒,谢谢。

for %%a in (d: e: f: g: h: i: j: k: l: m: n: o: p: q: r: s: t: u: v: w: x: y: z:) do | find "special_folder" >nul && set unc=%%a:
echo %unc%
pause

编辑以排除故障,输出网络使用

Microsoft Windows [版本 10.0.14393]
(c) 2016 年微软公司。版权所有。

C:\Users\Admin> 网络使用
新的连接会被记住。
Status       Local     Remote                    Network

-------------------------------------------------------------------------------
OK Y: \\DISKSTATION\NetBackup Microsoft Windows Network
OK Z: \\DISKSTATION\NetBackup Microsoft Windows Network
The command completed successfully.


C:\Users\Admin>

我试图修复,我在第一行尝试 FOR/F "tokens=2-3 delims= "并删除了 Microsoft Windows Networ,但随后在路径中删除了一个字母,例如\DISKSTATION\NetBacku\specialfolder

此外,如果我以管理员身份运行,那么代码不会回显任何路径,非管理员?谢谢

编辑 (最终)

感谢你们提供这些非常有用的代码。我将使用有效的方法编辑原始问题,两者都按它发生的情况进行,但我只能通过它的外观勾选一个解决方案。

测试环境:-

Win10(UAC 开启)

Win7(UAC 关闭)

每个映射驱动器中的两个映射驱动器在两个驱动器之一的根目录中都有一个名为 Daphne 的测试文件夹。
    @echo off
FOR /F "skip=2 delims=" %%G IN ('"wmic logicaldisk where drivetype=4 get name,providername /format:csv"') do (
FOR /F "tokens=2,3 delims=," %%H IN ("%%G") DO (
IF EXIST "%%I\Daphne\" echo %%I\Daphne
)
)
pause

以上在Win7(UAC关闭)测试系统上完美运行,Admin与否。作为非管理员 Win10 工作(UAC 开启), 没有 虽然以“管理员”身份运行。

下面 到处工作无论是否管理员,在这两种环境中。

建议的原始代码工作正常(仅供引用),但我只需要它输出没有引用或附加文本的路径,所以我只是添加了作者的慷慨努力(略有调整)以根据我的初衷结束原始问题。
@ECHO OFF
SETLOCAL EnableExtensions DisableDelayedExpansion

set "_FolderToSearch=Daphne"
for /F "delims=" %%D in ('reg query "HKCU\Network"') do (
for /F "tokens=1,2,*" %%f in ('reg query "%%~D" /v RemotePath ^| find /I "RemotePath"') do (
if exist "%%~h\%_FolderToSearch%\" echo %%~h\%_FolderToSearch%
)
)
pause

以下是两个代码片段在其工作形式中的屏幕输出:-
\\DISKSTATION\NetBackup\Daphne
Press any key to continue . . .

\\DISKSTATION\NetBackup\Daphne
Press any key to continue . . .

我现在可以轻松地将其设置为配置文件中的路径语句,通过让客户告诉我他们希望我们的数据在其网络上的位置的文件夹名称,从而完全自动化客户端软件安装。我先测试一下再汇报。

谢谢!

最佳答案

Mapped drives are not available from an elevated prompt when UAC is configured to "Prompt for credentials" in Windows .

下一个代码片段应该可以工作 即使从提升的命令提示符 :

@ECHO OFF
SETLOCAL EnableExtensions DisableDelayedExpansion

set "_FolderToSearch=models" folder name to be searched for

echo no recursion: folder in the root of the drive share:

for /F "delims=" %%D in ('reg query "HKCU\Network"') do (
for /F "tokens=1,2,*" %%f in ('reg query "%%~D" /v RemotePath ^| find /I "RemotePath"') do (
if exist "%%~h\%_FolderToSearch%\" echo # FOUND [%%~nD:] "%%~h\%_FolderToSearch%"
)
)

echo recursive search:

for /F "delims=" %%D in ('reg query "HKCU\Network"') do (
for /F "tokens=1,2,*" %%f in ('reg query "%%~D" /v RemotePath ^| find /I "RemotePath"') do (
for /F "delims=" %%# in ('dir /B /S /AD "%%~h\%_FolderToSearch%*" 2^>NUL') do (
if /I "%%~nx#"=="%_FolderToSearch%" echo # found [%%~nD:] "%%~#"
)
)
)

关于batch-file - 在任何映射驱动器中查找特定文件夹并报告其完整的 UNC 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39880912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com