需求
公司更新了服务器共享盘,需要⼏⼗个同事映射新的⽹络盘,这个时候想到直接⽤批处理来完成这个⼯作,⼀⽅⾯可以统⼀盘符,另⼀⽅⾯
新同事来了以后不需要过多的交代
原理
映射⽹络盘的批处理命令如下
net use [盘符] [路径]
例:将路径\\NASimfour\Public映射到h盘
net use h: \\NASimfour\Public
解决⽅案
公司新的⽹络路径有三个,分别要映射到三个盘符,新建⽂本⽂档写⼊以下命令
@echo off
net use P: \\XXXXXX\XXXXX1 && echo 成功映射【XXXXX1】到【P盘】 || echo 检查P盘是否被占⽤
net use R: \\XXXXXX\XXXXX2 && echo 成功映射【XXXXX2】到【R盘】 || echo 检查R盘是否被占⽤
net use
--------------------------------------------------------
Q:现有50台电脑需要映射一网络驱动,网络映射盘必须为F盘。问题是目前有部分电脑已有本地F盘,需要把本地的F盘的盘符更换成J后,再映射网络驱动到F盘。由于电脑多,故想用批处理文件解决。 批处理内容:
echo select volume f >remove.txt
echo remove >>remove.txt
diskpart /s remove.txt >output.txt
net use f: [url=]\\ip\dir[/url]
set vol=0
for /f "skip=6 delims=卷DiskPart成功地删除了驱动器号或装载点。 " %%i in (output.txt) do set vol=%%i
echo select volume %vol% >assign.txt
echo assign >>assign.txt
diskpart /s assign.txt
del remove.txt
del assign.txt
del output.txt
--------------------------------------------------------------- 1、先移除F盘盘符,命令如果成功执行会输出文本到output.txt
diskpart> select volume f 选择F盘,成功的话会有输出显示选择了某个盘假设为:卷5
diskpart> remove 移除当前选择盘的盘符的
diskpart /s remove.txt >output.txt 是为了把diskpart的输出内容写到output.txt中 2、加载网络盘
net use f: [url=]\\ip\dir[/url] 详细用法想楼主应该会使用,具体帮助见net help use 3、利用output.txt获取卷5
for 执行过程:条过6行,并把“卷DiskPart成功地删除了驱动器号或装载点。 ”里的内容作为分隔符进行读文本,那就会把数字5读取到变量%%i中,然后赋值给vol变量 4、重新加载卷5
diskpart> select volume 5 选择卷5,因为我们已经移掉盘符,所以就只能用数字了,这就是output.txt的作用
diskpart> assign 移除当前选择盘的盘符的
|