
Quiero usar la línea de comando para acceder a los archivos en el iPhone en lugar de usar Windows Ctrl+ C, Ctrl+ Vpara copiar todos los archivos a mi PC.
Eché un vistazo para ver si podía asignar "Esta PC" o cualquiera de las otras líneas como una unidad de red, pero no pude encontrar cómo.
Como se muestra a continuación, tengo la intención de copiar las carpetas del iPhone usando la línea de comando, probablemente el símbolo del sistema estilo DOS.
Respuesta1
Si desea evitar el software de terceros,Potencia ShellPuede utilizar el shell.application
objeto com para acceder a carpetas virtuales y dispositivos MTP. Aquí hay un script de copia simple:
$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
Cada directorio tiene unCarpetaobjeto y unElemento de carpetaobjeto asociado a él. Pueden hacer referencia entre sí con las propiedades .Self
y GetFolder
:
|--------> Folder.Self ------->|
Folder FolderItem
|<--- FolderItem.GetFolder <---|
Referencias: