|
|
本帖最后由 有阴也有阳 于 2017-8-14 19:04 编辑
求一个批处理——用IMDISK虚拟磁盘加载ISO文件。
批处理运行后自动用IMDISK虚拟磁盘加载一个名为“win.iso”的ISO文件。
IMDISK虚拟磁盘(绿色版)在U盘根目录下的IMDISK文件夹内,名为“win.iso”的ISO文件在U
盘根目录下。
要求此批处理在U盘根目录下的IMDISK文件夹内点击运行。
谢谢!!!
感谢众网友热心答复,下面这个实测可用:
@echo off
imdisk -a -f D:\win.iso -m z:
pause
D就是U盘的在我的电脑里的盘符。
再做如下修改,就可以在任意电脑上、虚拟机上使用:
@echo off
imdisk -a -f %~d0\win.iso -m z:
pause
用“%~d0 ”取代“D:”,%~d0 是指批处理所在的盘符,用相对路径取代绝对路径,就可以在任意电
脑上、虚拟机上使用,实测成功。
最后再一次地感谢大家!!!谢谢!!!
在启动U盘中希望IMDISK虚拟磁盘一被安装好,要安装的系统的ISO镜像就已经被IMDISK
虚拟磁盘所加载,下面就直接安装系统就行了:
一:
1
二:
2
IMDISK的安装命令——install.cmd,红色加粗的部分是添加的“自动加载U盘根
目录下的win.iso文件的命令”:
@echo off
setlocal
title ImDisk 虚拟磁盘驱动器安装程序
echo ImDisk 虚拟磁盘驱动器安装程序
echo.
set IMDISK_TOTAL_DEVICES=0
set IMDISK_VALID_DEVICES=0
set IMDISK_PENDING_REMOVAL_DEVICES=0
if exist "%SystemRoot%\system32\imdisk.exe" (
for /f %%a in ('imdisk -l -n ^| find /v /i ^"No^"') do call :addline "%%a"
)
if %IMDISK_VALID_DEVICES% GTR 0 (
echo 已加载的 ImDisk 虚拟磁盘数量: %IMDISK_VALID_DEVICES%
echo.
if "%IMDISK_SILENT_SETUP%" == "1" (
echo 请在升级前弹出所有 ImDisk 虚拟磁盘 !
echo.
) else (
msgboxw "请在升级前弹出所有 ImDisk 虚拟磁盘 !" 16 "ImDisk-虚拟磁盘驱动器安装程序"
start control imdisk.cpl
)
endlocal
goto :eof
)
echo 已加载的 ImDisk 虚拟磁盘数量: %IMDISK_TOTAL_DEVICES%
echo.
if %IMDISK_TOTAL_DEVICES% == 0 (
net stop imdsksvc
net stop awealloc
net stop imdisk
if exist "%SystemRoot%\system32\taskkill.exe" taskkill /F /IM imdsksvc.exe
)
pushd "%~dp0"
rundll32 setupapi.dll,InstallHinfSection DefaultInstall 132 .\imdisk.inf
popd
if errorlevel 1 (
if not "%IMDISK_SILENT_SETUP%" == "1" msgboxw "安装失败。请重启计算机后再次尝试运行本程序。" 16 "ImDisk-虚拟磁盘驱动器安装程序"
endlocal
goto :eof
)
set IMDISK_START_FAILED=1
if %IMDISK_TOTAL_DEVICES% == 0 (
set IMDISK_START_FAILED=0
net start imdsksvc || set IMDISK_START_FAILED=1
net start awealloc || set IMDISK_START_FAILED=1
net start imdisk || set IMDISK_START_FAILED=1
)
if not "%IMDISK_SILENT_SETUP%" == "1" (
if %IMDISK_START_FAILED% == 0 (
imdisk -a -f %~d0\win.iso -m z:
msgboxw "安装成功。您可以在控制面板中打开 ImDisk 虚拟磁盘驱动器或使用 imdisk 命令行来管理您的虚拟磁盘!" 0 "ImDisk-虚拟磁盘驱动器安装程序"
) else (
msgboxw "安装完成, 但驱动程序或服务无法运行。请重启计算机后再次尝试运行本程序。" 16 "ImDisk-虚拟磁盘驱动器安装程序"
)
)
endlocal
goto :eof
:addline
imdisk -l -u %~1 > nul 2>&1
if errorlevel 1 (
set /a IMDISK_PENDING_REMOVAL_DEVICES=%IMDISK_PENDING_REMOVAL_DEVICES% + 1 > nul
) else (
set /a IMDISK_VALID_DEVICES=%IMDISK_VALID_DEVICES% + 1 > nul
)
set /a IMDISK_TOTAL_DEVICES=%IMDISK_TOTAL_DEVICES% + 1 > nul
goto :eof |
|