Batch file 将驱动器映射到未知共享名?
我正在尝试创建一个批处理文件,该文件可以查看网络共享的内容,找到特定的命名目录和子目录,然后将驱动器映射到包含这些内容的共享。问题是,虽然共享内容中包含这些文件夹,以确定这是正确的共享,但在不同的设置中,共享名称本身可能不同,因此我不能在脚本中仅使用共享名称 换句话说 \\服务器\共享\模拟人生\设置 sims和setups目录将始终存在于共享中,但共享名称可能有所不同。服务器名称将已存在于批处理文件中,因为它是使用set/p命令设置的,以提示用户输入服务器ip 我已经看过find和forfiles命令,但它们似乎只适用于本地搜索,而不适用于网络路径 谢谢如所示,您可以使用Batch file 将驱动器映射到未知共享名?,batch-file,Batch File,我正在尝试创建一个批处理文件,该文件可以查看网络共享的内容,找到特定的命名目录和子目录,然后将驱动器映射到包含这些内容的共享。问题是,虽然共享内容中包含这些文件夹,以确定这是正确的共享,但在不同的设置中,共享名称本身可能不同,因此我不能在脚本中仅使用共享名称 换句话说 \\服务器\共享\模拟人生\设置 sims和setups目录将始终存在于共享中,但共享名称可能有所不同。服务器名称将已存在于批处理文件中,因为它是使用set/p命令设置的,以提示用户输入服务器ip 我已经看过find和forfil
net view
命令列出服务器的共享
for命令能够迭代命令的输出。如果存在某个文件夹/文件,在下面粗略的命令行中结合这些命令行确实可以为我映射驱动器
for /F %a in ('net view \\srv') do if exist "\\srv\%a\sims\setup" net use z: \\srv\%a
(如果在命令脚本中使用此行,请不要忘记将%a更改为%%a)
网络视图确实输出了一些噪声,但这并不会影响结果。您可以添加一些额外的处理,以便仅在收到“----”行后处理共享
这是怎么回事?
net view\\server
输出以下内容:
Shared resources at \\server
Awesome server
Share name Type Used as Comment
-----------------------------------------------------------------------------
Configuration Disk System Configuration
Download Disk Download Share (Full Access)
Public Disk Public Share (Full Access)
Blah Disk Blah share (Full Access)
The command completed successfully.
for/f
命令将每行解析到下一个空格。从<代码>中获取/?
FOR /F ["options"] %variable IN (`command`) DO command [command-parameters]
…您可以使用FOR/F命令来解析
指挥部。通过将文件设置为
括号是带反引号的字符串。它将被视为一个命令
行,传递给子CMD.EXE并捕获输出
并将其解析为一个文件
如果在net view\\server
上运行,使用该技术将回显以下结果:
Shared
Network
Share
-----------------------------------------------------------------------------
Configuration
Download
Public
Blah
The
EXIST操作符检查文件/目录是否存在。通过连接servername、share和期望的文件夹,您可以发现该文件夹是否存在于该共享上
正如我所说的,前4行和最后一行是噪声,应该忽略,但在这种情况下它们不会造成太大的伤害。使用
net view\\server
看看它显示了什么。谢谢@foxidrive。这部分我已经记下来了,我只是不确定如何使用这个命令的输出来获得我所需要的。看来我现在有了一个完美的解决方案。再次感谢。谢谢你@KennyBot,这真是妙不可言!这正是我的目标。非常感谢!刚试过。我确信它会以某种方式使用for命令和net视图,但就是不知道如何应用它。再次感谢。该命令需要在批处理文件中使用元变量的中使用百分号。