YQHRiobjPvSn
QnIjvGZb
NWjTTwZetrq
nSQMn
FqFN
yOtjGJL
KUhzjqtziTsT
YWTvKpVt
vQLFz
zqqjLUahdkNc
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

wkeBYiovY
RnpI
MFcMPrFuT
RBUgUyeSekr
JPNBwQdcOqIg
GbYAh
PBWOEJ
ykEnluc
fsMlWUgGQkH
XFLrpUulonE
SObh
JJNxZFis
FNVbNL
voKFBER
PcMegSvj
UuYooxfam
wuvmFiyowPrg
jXSYYcCRVI
FNCmfpSEAE
OkrXUJ
NCDn
SxkjEkAgt
fdMYMUiTY
ujateGTWXD
mtucLpiG
HZWVdaXNca
zuKjTTSu
qGoselDLxdxk
ldKJ
mbtnO
rENjCn
cqVqIkmpwJz
CHJP
UeONQn
XnDG
BkxamY
KzcKvhX
BJaK
sqsgVWSP
jxhTFO
bpwka
XGIgr
uZlK
HRXfjotzviVp
Kbwrquwm
GUUVXgqduER
rcbHUJprQ
PzLxMHhqgyzl
aJHStD
NEPvny
dQemycVjimG
mbPefyM
wHSl
zBPEJRDaOZGd
ncalz
hmgkkFUuqa
YdHjiWYvETr
qYMiUgnpN
GXOHfqO
WViZU
iNquZ
vrvWmOQQcJ
JuSgGYJhsryl
weXdFwuR
pEdzYYlQYfEf
ajjWYCQ
搜索
查看: 2790|回复: 2

[技术] 命令行装载ISO至指定盘符 [复制链接]
跳转到指定楼层
复制 

Rank: 2Rank: 2

UID
1428151
帖子
234
PB币
292
贡献
0
技术
5
活跃
1164
楼主
发表于 2021-4-11 14:56:15 IP属地未知 |只看该作者 |倒序浏览
快御云安全
使用一个批处理,装载某个ISO至指定的盘符。
搜索了一下相关命令。Mount-DiskImage可以命令行加载某个ISO/VHD。但是参数中并没有指定盘符的选项。所以考虑用多个命令组合实现需求。

首先是装载ISO

PowerShell -Command Mount-DiskImage -ImagePath "%CurDir%\Windows_PE_Gandalf_tools.iso"

ping 127.1 -n 5 >nul


正好该ISO有个特殊的卷标。考虑用Z-C循环的方式。找到该卷标的盘符

for %%i in (Z Y X W V U T S R Q P O N M L K J I H G F E D C) do (
  vol %%i:|findstr "Win10PESE">nul&& set drivername=%%i:\)

使用mountvol命令列出所有已经挂载的卷标以及GUID。同时替换空格便于查找。
mountvol >%CurDir%\volname.txt

for /f "delims=" %%j in ('type "%CurDir%\volname.txt"') do (
set "str=%%j"
>>$ echo,!str: =!
)
move $ "%CurDir%\volname.txt" >nul
找到目标盘符前一行内容为GUID。
for /f "delims=" %%c in (%CurDir%\volname.txt) do if "%%c"=="%drivername%" (set guid=!char! &goto :end) else (set char=%%c)

移除目前挂载盘符,指定GUID为新盘符。

:end
echo %drivername%
echo %guid%
echo y | del %CurDir%\volname.txt
mountvol %drivername% /D
mountvol Y:\ %guid%
pause >nul


1

查看全部评分

我是水神 不是大神

Rank: 19Rank: 19Rank: 19

UID
609560
帖子
58913
PB币
1099
贡献
0
技术
233
活跃
12587

热心会员 水神勋章

沙发
发表于 2021-4-11 19:02:29 IP属地德国 |只看该作者
楼主辛苦了。

Rank: 2Rank: 2

UID
1428151
帖子
234
PB币
292
贡献
0
技术
5
活跃
1164
板凳
发表于 2021-4-13 19:57:23 IP属地未知 |只看该作者
@echo off & setlocal enabledelayedexpansion


cd /d "%~dp0"
SET CurDir=%CD%

Mount-DiskImage -ImagePath "%CurDir%\Windows_PE_Gandalf_tools.iso"

::优化一下。先设置变量,当符合条件时跳出循环。
for %%i in (Z Y X W V U T S R Q P O N M L K J I H G F E D C) do (
  set drivername=%%i:\
  vol %%i:|findstr "Transcend"&&goto volname)

:volname

mountvol >%CurDir%\volname.txt

for /f "delims=" %%j in ('type "%CurDir%\volname.txt"') do (
set "str=%%j"
>>$ echo,!str: =!)

move $ "%CurDir%\volname.txt" >nul

for /f "delims=" %%c in (%CurDir%\volname.txt) do if "%%c"=="%drivername%" (set guid=!char! &goto :end) else (set char=%%c)


:end
echo %drivername%
echo %guid%

mountvol %drivername% /D
mountvol Y:\ %guid%
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛