为什么在WinPE中运行Diskpart后我的批处理文件不能继续执行?

时间:2015-02-13 11:42:21

标签: windows shell batch-file cmd winpe

我正在尝试创建一个在WinPE中运行的批处理文件。我想知道如何运行一个调用diskpart然后退出并继续运行批处理文件的大型批处理文件。当我调用diskpart时,它只是在运行diskpart部件后退出。我知道如何运行diskpart批处理文件。

 @echo off
diskpart /s createparts.txt

以下是我用来创建分区的示例diskpart批处理文件。我希望在文件末尾运行copyimg.bat以继续自动处理,该处理将图像复制到新分区的驱动器。

select disk 0 
CREATE PARTITION PRIMARY size=100
format quick fs=ntfs label="OS"
assign letter="c"
active 
CREATE PARTITION PRIMARY 
format quick fs=ntfs 
assign letter=d 
exit
call copyimg.bat

我知道我在调用copyimg.bat之前调用exit,但是在运行其他非diskpart相关脚本之前我需要退出diskpart。

3 个答案:

答案 0 :(得分:1)

您不能在同一文件中混合批处理命令和diskpart命令。您已经有两个文件,但是您将额外的批处理命令放在了错误的位置。

批处理文件应如下所示:

@echo off
diskpart /s createparts.txt
call copyimg.bat

diskpart文件createparts.txt应如下所示:

select disk 0 
CREATE PARTITION PRIMARY size=100
format quick fs=ntfs label="OS"
assign letter="c"
active 
CREATE PARTITION PRIMARY 
format quick fs=ntfs 
assign letter=d 
exit

当diskpart到达其指令的末尾时,它将退出,批处理器将从它停止的位置恢复。

答案 1 :(得分:0)

将所有线路放在"选择磁盘0"通过"退出"在像DiskPartCmds.txt这样的文件中,然后用这一行替换bat文件中的那些行。

DiskPart.exe < DiskPartCmds.txt

答案 2 :(得分:0)

我对另一个脚本有同样的问题。在调用它而不是继续并执行以下命令后,它就停止了。我用 cmd / C 解决了这个问题,例如:

cmd /C my_script_file.bat
another_command
more_stuff_here