首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell/批处理网络映射驱动器

Powershell/批处理网络映射驱动器
EN

Stack Overflow用户
提问于 2013-07-09 20:05:26
回答 2查看 1K关注 0票数 1

我想要一个powershell/批处理脚本,可以将驱动器映射到可用盘符上。或者测试字母然后映射到一个免费的字母上。

我相信有比这更简单的东西。

代码语言:javascript
复制
$tab = @()

$tab = @('A:', 'B:', 'C:', 'D:', 'E:', 'F:', 'G:', 'H:', 'I:', 'J:', 'K:', 'L:', 'M:', 'N:', 'O,:', 'P:', 'Q:', 'R:', 'S:', 'T:', 'U:', 'V:', 'W' ,'X:', 'Y:', 'Z')

for($i = 0;$i -lt 26;$i++){

    if(net use $tab[$i] > $null){
        Write-Host $tab[$i] "`tExists"
    }
    else{
        Write-Host $tab[$i] "`tDoesn't exist"
    }
}

我需要我的PS脚本在.bat脚本中写一些东西。因此,1)在我的PS脚本中找到空闲的字母,然后将其写入.bat脚本,如下所示

$freeletter | Output-File -Append ....

或者2)我的.bat脚本做类似这样的事情:

代码语言:javascript
复制
Is G: free ?
   No Is H: free ?
        Yes : Map It -> $mapdrive_1 = "H:"
              Is I: free ?
                    No  Is J: Free ?
                              Yes : Map it -> $mapdrive_2 = "J:"

#Once it's done I got my ONLY 2 mapped drives
$mapdrive_1
$mapdrive_2

#then i can do
net use $mapdrive_1 "my\path1"
net use $mapdrive_2 "my\path1"
start robocopy $mapdrive_1 $mapdrive_2 /options
net use $mapdrive_1 /DELETE
net use $mapdrive_2 /DELETE

net use $mapdrive_1 "my\path2"
net use $mapdrive_2 "my\path2"
start robocopy $mapdrive_1 $mapdrive_2 /options
net use $mapdrive_1 /DELETE
net use $mapdrive_2 /DELETE

希望您能理解我的意思:)

致以敬意,

尼科。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-09 20:22:24

这将输出所有空闲的字母,然后您可以通过管道连接到select-object来只获取第一个字母:

代码语言:javascript
复制
ls function:[a-z]: -name | where {-not (get-psdrive $_[0] -ea 0)}
票数 4
EN

Stack Overflow用户

发布于 2017-02-14 00:35:15

代码语言:javascript
复制
$Mapdrive = "\\DRIVE NAME\My\Path\"

使用驱动器别名会使驱动器号变得无关紧要,如果由于某种原因,驱动器号发生了变化,这会特别方便。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17547770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档