Windows Powershell命令行相当于dd

时间:2016-06-02 17:05:45

标签: windows powershell dd

我正在编写一个Powershell脚本来制作驱动器的原始副本,但我一直无法找到完成此操作的方法。

在Linux上,我会使用'dd'来执行此副本。

有一些工具可以在Windows上执行此操作,但我无法直接从命令行控制。 (都有GUI界面)

是否有方法通过Powershell制作驱动器的物理副本?

感谢。

3 个答案:

答案 0 :(得分:0)

您可能已经知道Windows上的cygwin支持某些Linux命令,包括dd。我曾经多次使用它来复制磁盘并将ISO加载到USB,它运行良好。

答案 1 :(得分:0)

我已经尝试了一段时间,我终于找到了一个很好的答案。

适用于Windows的Git附带了包括dd在内的整套GNU核心实用程序(已更新,而您可以分别找到)!

只需安装Windows的Git或解压缩可移植的版本,从git \ usr \ bin \的安装目录中即可找到所有GNU utils的二进制文件,包括dd(已测试工作)

由于\ dev \ sda \不是问题,因此在Windows中还有一些使用注意事项:

$DiskDrives = Gwmi Win32_diskdrive | select DeviceID,BytesPerSector,Index,Caption,InterfaceType,Size,TotalSectors,SerialNumber | Out-GridView -OutputMode Multiple -Title 'Select Source Drive(s)'

$BaseOutputPath = 'D:\'
$DiskDrives | %{
. ('C:\Program Files\Git\usr\bin\dd.exe if={0} of={1} bs={2}' -f $_.DeviceID,(-join($BaseOutputPath,(- 
    join($Env:ComputerName,$_.Index)),'.img')),$_.BytesPerSector)
}

包含的文件名逻辑只是一个占位符,如果希望它提示您输入文件名/路径,则可以用对Read-Host的调用来替换该括号。

这有点烦人,但是您确实必须使用WMI,因为Get-Disk返回的值似乎不起作用。

答案 2 :(得分:0)

Windows 10现在带有linux。适用于Linux的Windows子系统。您可以将其启用为功能。您甚至可以在1903和1909年获得带有真实内核的WSL 2:https://devblogs.microsoft.com/commandline/whats-new-in-the-windows-subsystem-for-linux-september-2020/