簡體   English   中英

Windows Powershell 相當於 dd 的命令行

[英]Windows Powershell command line equivalent of dd

我正在編寫一個 Powershell 腳本來制作驅動器的原始副本,但我一直無法找到完成此操作的方法。

在 Linux 上,我將使用“dd”來執行此復制。

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

有沒有辦法通過 Powershell 制作一個驅動器的物理副本?

謝謝。

我自己已經嘗試這樣做了一段時間,我終於找到了一個很好的答案。

適用於 Windows 的 Git 附帶一整套 GNU 核心實用程序(已更新與您可以單獨找到的內容相比),包括 dd!

只需安裝適用於 Windows 的 Git 或提取便攜式版本,從 git\\usr\\bin\\ 的安裝目錄中,您將找到所有 GNU 實用程序的二進制文件,包括 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返回的值似乎不起作用。

您可能已經知道 Windows 上的cygwin支持一些 Linux 命令,包括dd 我曾多次使用它來復制磁盤並將 ISO 加載到 USB,並且它運行良好。

Windows 10 現在帶有 linux。 適用於 Linux 的 Windows 子系統。 您可以將其作為一項功能啟用。 您甚至可以在 1903 年和 1909 年獲得帶有真實內核的 WSL 2: https : //devblogs.microsoft.com/commandline/whats-new-in-the-windows-subsystem-for-linux-september-2020/

Get-CimInstance -ClassName Win32_DiskDrive | Format-List -Property DeviceID,BytesPerSector,Index,Caption,InterfaceType,Size,TotalSectors,SerialNumber

跟進@Chirishman 的回答,對於 Powershell 7.2, Gwmi可能從 powershell 中丟失。

獲取DeviceId和其他信息的替代命令如上所述可用。

然后你可以使用dd if={DeviceId} of=<target_file>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM