
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.
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 .Self
und referenzieren GetFolder
:
|--------> Folder.Self ------->|
Folder FolderItem
|<--- FolderItem.GetFolder <---|
Verweise: