2012-07-25 80 views
0

我在我的項目中有一個需求,即雲門戶 我們有條件在Windows虛擬機上實時附加額外的磁盤。 自動安裝,我已經寫了一個批處理文件.that掛載和格式化磁盤。 問題是,它工作正常,但在Windows Server 2008中,但自動確認後,格式化磁盤。儘管我的mount和format命令工作並且磁盤被連接並轉換爲NTFS。但該對話框很討厭......請幫助我的批處理文件是這樣的Diskpart批處理文件自動掛載和格式化磁盤

@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 

我希望此文件幫助別人的過程自動化。請幫我完成它。

回答

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線,只是因爲我們要生成一個管道符,我們只需要使用^字符來逃避它。