
Я хочу использовать командную строку для доступа к файлам на iPhone вместо использования Windows Ctrl+ C, Ctrl+ Vдля копирования всех файлов на мой ПК.
Я пытался понять, можно ли отобразить «Этот компьютер» или любую другую строку как сетевой диск, но не смог найти, как это сделать.
Как указано ниже, я намерен скопировать папки iPhone с помощью командной строки, скорее всего, командной строки в стиле DOS.
решение1
Если вы хотите избежать стороннего программного обеспечения,PowerShellможно использовать shell.application
объект com для доступа к виртуальным папкам и устройствам MTP. Вот простой скрипт копирования:
$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
В каждом каталоге есть какПапкаобъект иПапкаЭлементобъект, связанный с ним. Они могут ссылаться друг на друга с помощью свойств .Self
и GetFolder
:
|--------> Folder.Self ------->|
Folder FolderItem
|<--- FolderItem.GetFolder <---|
Использованная литература: