用于切换映射磁盘位置的批处理文件

用于切换映射磁盘位置的批处理文件

我必须切换我的映射磁盘,因为我在两台服务器上工作并且不想更改存储在我修改的文件中路径。

通常,在我公司,这两个位置都映射为 P:。
我只是想知道如何做这样的事情。我能得到你的帮助吗?

我有两个网络用途:

NET USE P: /d
NET USE L: \\PLKRKXXXX.XXX.XX\Assignment
NET USE P: \\SEXXXXX\Projekt\

我运行脚本来映射为字母 P:

  1. 如果没有映射驱动器 P: 脚本则执行第一个

    NET USE P: \\PLKRKXXXX.XXX.XX\Assignment
    
  2. 如果已经有驱动器映射为 P:脚本将实际网络使用设置为字母 L:并将第二个设置为 P:当我再次运行此脚本时,它会更改驱动器映射 L 和 P 的位置,因为它只是切换它们。

我现在使用两个像上面这样的简单批处理脚本,但我知道可以使用一些条件使其更好地工作。

对我来说,它是 bat 脚本还是 vbs 还是其他什么并不重要,我只是想通过运行一个图标来做到这一点。

编辑: 我尝试过您的变体,也许我说得不够清楚。两个位置(服务器)每次都可用,但我必须在它们之间切换。一次我在本地服务器上工作,一次在外部服务器上工作。但两者都被映射为 P:(对于每个用户),所以我需要进行切换(取决于我现在正在从事的项目)。我可以按照您的建议假设优先级(但如果我能够再次运行脚本来切换它,那就没什么大不了的)。无论如何,感谢您的努力。

我运行脚本然后:

情况 1a:我有如下映射磁盘

P: \\SEXXXXX\Projekt\ and L: \\PLKRKXXXX.XXX.XX\Assignment

当脚本完成时-它只是将它们切换为:

L: \\SEXXXXX\Projekt\ and P: \\PLKRKXXXX.XXX.XX\Assignment

情况 1b: (我再次运行脚本)所以我从头开始:

L: \\SEXXXXX\Projekt\ and P: \\PLKRKXXXX.XXX.XX\Assignment

我再次运行它后它将返回开始

P: \\SEXXXXX\Projekt\ and L: \\PLKRKXXXX.XXX.XX\Assignment

情况 2:(我还没有映射 P:驱动器)然后脚本进行映射

P: \\PLKRKXXXX.XXX.XX\Assignment

答案1

这种方法怎么样?

显然,如果您只有一个网络共享可用,您希望将其映射为P: 现在您需要决定优先级。P:当两个网络共享都可用时,您将映射到哪个驱动器?假设您决定\\SEXXXXX\Projekt\优先级高于\\PLKRKXXXX.XXX.XX\Assignment

然后只需使用:

NET USE P: /DELETE
NET USE L: /DELETE
NET USE P: \\SEXXXXX\Projekt\ && NET USE L: \\PLKRKXXXX.XXX.XX\Assignment || NET USE P: \\PLKRKXXXX.XXX.XX\Assignment

这里的关键是使用有条件执行&&||

答案2

您可以使用以下方法exist来检查驱动器号是否存在:

if exist P: (
    echo Drive P exists 
    NET USE P: /d
    NET USE L: \\PLKRKXXXX.XXX.XX\Assignment
    NET USE P: \\SEXXXXX\Projekt\
) else (
    echo Drive P does not exist
    NET USE P: \\PLKRKXXXX.XXX.XX\Assignment
)

相关内容