求一个批处理——用IMDISK虚拟磁盘加载ISO文件
本帖最后由 有阴也有阳 于 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 是指批处理所在的盘符,用相对路径取代绝对路径,就可以在任意电
脑上、虚拟机上使用,实测成功。
最后再一次地感谢大家!!!谢谢!!!{:3_155:}
在启动U盘中希望IMDISK虚拟磁盘一被安装好,要安装的系统的ISO镜像就已经被IMDISK
虚拟磁盘所加载,下面就直接安装系统就行了:
一:
二:
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 本帖最后由 23456 于 2017-8-13 20:06 编辑
@echo off
U:\IMDISK\imdisk.exe -a -f U:\win.iso -m z:
pause 23456 发表于 2017-8-13 19:35
@echo off
U:\IMDISK\imdisk.exe -a -f U:\win.iso -m z:
pause
谢谢!!!实测可用! 23456 发表于 2017-8-13 19:35
@echo off
U:\IMDISK\imdisk.exe -a -f U:\win.iso -m z:
pause
原来的:
@echo off
imdisk -a -f D:\A-IMDISK\awin.iso -m z:
pause
成功运行。(D盘就是U盘——在虚拟机里做磁盘。)
新的:
U:\IMDISK\imdisk.exe -a -f
或
U:\IMDISK\imdisk-a -f
执行时提示:“既不是内部命令,也不是外部命令”,无法正常执行。 有阴也有阳 发表于 2017-8-14 01:52
原来的:
@echo off
这个提示都是路径不对 本帖最后由 有阴也有阳 于 2017-8-14 10:07 编辑
23456 发表于 2017-8-14 07:04
这个提示都是路径不对
新的将U改成D:
D:\IMDISK\imdisk.exe -a -f
或
D:\IMDISK\imdisk-a -f
执行时仍然提示:“既不是内部命令,也不是外部命令”,无法正常执行。
就是最开始的那个执行良好,谢谢!!! 这个东西有驱动和注册表支持,需要初始化才可以使用。 本帖最后由 807979023 于 2017-8-14 11:30 编辑
IMDISK不是需要先安装吗?
安装后应该不需要imdisk.exe旳路径 ,
imdisk.exe -a -f U:\win.iso -m z:
楼主有不需要安装的绿色版? 807979023 发表于 2017-8-14 11:20
IMDISK不是需要先安装吗?
安装后应该不需要imdisk.exe旳路径 ,
imdisk.exe -a -f U:\win.iso -m z:
是不用安装的IMDISK地绿色版。
还有一个问题——如何在安装命令之后加上这一句让IMDISK直接自动加载win.iso?
IMDISK的安装命令——install.cmd:
@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 (
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
在哪儿加上这一句:imdisk.exe -a -f U:\win.iso -m z:
应该如何加?让其在安装完IMDISK后直接自动装载win.iso? 有阴也有阳 发表于 2017-8-14 12:41
是不用安装的IMDISK地绿色版。
还有一个问题——如何在安装命令之后加上这一句让IMDISK直接自动加载wi ...
你这个仍然是安装版,只是未打包,安装文件就是install.cmd。
你这个install.cmd太复杂我没看懂,简化后可实现安装完后直接自动装载win.iso。
install.cmd:
rundll32 setupapi.dll,InstallHinfSection DefaultInstall 132 .\imdisk.inf
net start imdsksvc
net start awealloc
net start imdisk
imdisk -a -f d:\win.iso -m z:
加载iso.cmd:
imdisk -a -f d:\win.iso -m z:
卸载iso.cmd:
imdisk -d -m z: 807979023 发表于 2017-8-14 13:59
你这个仍然是安装版,只是未打包,安装文件就是install.cmd。
你这个install.cmd太复杂我没看懂,简化后 ...
谢谢!!! 本帖最后由 有阴也有阳 于 2017-8-14 19:07 编辑
807979023 发表于 2017-8-14 13:59
你这个仍然是安装版,只是未打包,安装文件就是install.cmd。
你这个install.cmd太复杂我没看懂,简化后 ...
在原安装CMD命令中已经成功地加入加载U盘根目录下的win.iso文件的命令:
一:
二:
页:
[1]