0

我的项目中有一个需求,即一个云门户,我们可以在 Windows 虚拟机中动态附加一个额外的磁盘。为了自动安装,我编写了一个批处理文件。该文件可以安装和格式化磁盘。问题是它工作正常,但在 windows server 2008 中虽然在自动确认它格式化磁盘之后。尽管我的挂载和格式化命令有效并且磁盘被附加并转换为 NTFS。但是那个对话框很烦人......请帮助我的批处理文件是这样的

@echo off 
rem # the following batch file is used to create dynamic disk , mount it and format it
echo>tempdiskpart.txt List disk
diskpart /s tempdiskpart.txt > tempdiskfilelist.txt
for /f "tokens=3" %%f in ('find /c /i "Disk" "tempdiskfilelist.txt"') do set isComplete=%%f
set /a total = %isComplete%-3

rem # code to find driver letter 
set /a diskNum =1
:loop
set w=s

if exist e:\nul echo. Disk in use

rem for %%p in (d e f g h i j k l m n o p q r s t u v w x y z) do if exist %%p:\nul echo. %%p Disk in use
for %%p in (z y x w v u t s r q p o n m l k j i h g f e d) do if exist %%p:\nul echo. %%p Disk in use
for %%p in (z y x w v u t s r q p o n m l k j i h g f e d) do if not exist %%p:\nul echo. %%p Disk is available
for %%p in (z y x w v u t s r q p o n m l k j i h g f e d) do if not exist %%p:\nul set driveltr=%%p



 echo > tempdiskpart%total%.txt Select Disk %total%
 echo >> tempdiskpart%total%.txt convert dynamic
 echo >> tempdiskpart%total%.txt create volume simple Disk %total%
 echo >> tempdiskpart%total%.txt assign letter=%driveltr%
 diskpart /s tempdiskpart%total%.txt
 del tempdiskpart%total%.txt
 echo >tempdiskvolume%total%.bat 
 echo >>tempdiskvolume%total%.bat format %driveltr%: /v:Newdisk_%diskNum% /FS:ntfs /q
 echo Y |call tempdiskvolume%total%.bat 
 del tempdiskvolume%total%.bat

  set /a diskNum +=1
  set /a total -=1


  if %total% GTR 0 goto loop

   del tempdiskfilelist.txt
   del tempdiskpart.txt

我希望这个文件可以帮助某人自动化这个过程。请帮我完成它。

4

1 回答 1

1

您只需要更改此行:

echo >>tempdiskvolume%total%.bat format %driveltr%: /v:Newdisk_%diskNum% /FS:ntfs /q

进入这个:

echo >>tempdiskvolume%total%.bat echo y ^| format %driveltr%: /v:Newdisk_%diskNum% /FS:ntfs /q

这就像echo Y |call tempdiskvolume%total%.bat行,只是因为我们要生成一个管道字符,我们只需要使用该^字符来转义它。

于 2012-07-26T00:08:36.787 回答