Wie kopiere ich Dateien mithilfe der Befehlszeile von einem iPhone?

Wie kopiere ich Dateien mithilfe der Befehlszeile von einem iPhone?

Ich möchte über die Befehlszeile auf die Dateien auf dem iPhone zugreifen, anstatt alle Dateien mit den Tasten Windows Ctrl+ C, Ctrl+ auf meinen PC zu kopieren.V

Ich habe nachgeschaut, ob ich „Diesen PC“ oder eine der anderen Zeilen als Netzlaufwerk zuordnen kann, konnte aber nicht herausfinden, wie das geht.

Wie unten beschrieben, beabsichtige ich, die iPhone-Ordner mithilfe der Befehlszeile zu kopieren, höchstwahrscheinlich über die Eingabeaufforderung im DOS-Stil.

Dieser PC auf dem I-Phone

Antwort1

Wenn Sie Software von Drittanbietern vermeiden möchten,Power Shellkann das com-Objekt verwenden shell.application, um auf virtuelle Ordner und MTP-Geräte zuzugreifen. Hier ist ein einfaches Kopierskript:

$pcDestinationPath = 'C:\Wherever\You\Want'
$phoneRelativePath = 'Internal Storage\DCIM'

$shell  = New-Object -com shell.application

$PhoneFolder = ($shell.NameSpace("shell:MyComputerFolder").Items() | where Type -match 'Mobile Phone|Portable Device').GetFolder

### To access a subfolder, you have to "walk" its path

$SourceFolder = $phoneRelativePath.Split('\') |
ForEach-Object -Begin {
    $comFolder = $PhoneFolder
} -Process {
    Try
    {
        $comFolder = ($comFolder.Items() | where {$_.IsFolder} | where Name -eq $_).GetFolder
    }
    Catch
    {
        Write-Error 'Failed to parse $DeviceFolderPath'
    }
} -End {
    $comFolder
}

### Get comFolder object for $pcDestinationPath

If ( ! (Test-Path $pcDestinationPath) )
{
    mkdir $pcDestinationPath -Force | out-null
}
$pcDestinationFolder = $shell.NameSpace($pcDestinationPath)
    
### Option 1: Copy $SourceFolder as a single item

$pcDestinationFolder.CopyHere($SourceFolder.Self)

### Option 2: Copy *the contents of* $SourceFolder as a collection of items

$pcDestinationFolder.CopyHere($SourceFolder.Items())

### Option 3: Copy selected items from $SourceFolder individually

$SourceFolder.Items() | where {<Test-Expression(s)>} |
ForEach-Object {
    $pcDestinationFolder.CopyHere($_)
}  

### FolderItem properties available for testing:
###   - IsFolder
###   - IsLink
###   - ModifyDate
###   - Name
###   - Parent
###   - Path
###   - Size
###   - Type

Jedes Verzeichnis hat sowohl eineOrdnerObjekt und einOrdnerelementObjekt, das damit verknüpft ist. Sie können sich gegenseitig mit den Eigenschaften .Selfund referenzieren GetFolder:

       |--------> Folder.Self ------->|
    Folder                         FolderItem
       |<--- FolderItem.GetFolder <---|

Verweise:

verwandte Informationen