Windows Powershell命令行等效于dd

R3d*_*ief 5 windows powershell dd

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

在Linux上,我将使用'dd'执行此复制。

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

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

谢谢。

小智 5

我自己也尝试这样做了一段时间,终于找到了一个很好的答案。

Windows 版 Git 附带了一整套 GNU 核心实用程序(已更新,与您可以单独找到的实用程序相比),包括 dd!

只需安装适用于 Windows 的 Git 或提取便携式版本,从 git\usr\bin\ 的安装目录内部,您将找到所有 GNU 实用程序的二进制文件,包括 dd (已测试工作)

关于 Windows 中使用的一些进一步说明,因为 \dev\sda\ 不是一个东西:

$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)
}
Run Code Online (Sandbox Code Playgroud)

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

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


小智 2

您可能已经知道,cygwin在 Windows 上支持一些 Linux 命令,包括dd. 我曾多次使用它来复制磁盘并将 ISO 加载到 USB,效果非常好。

  • TMO 对我来说。开销太大。但我明白你的意思。同时,我不能对此投票,因为 ti 没有回答所写的问题(当我搜索几乎完全正确的标题时,它出现在谷歌中) (2认同)