Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Клиентские ОС Microsoft » Microsoft Windows 8 и 8.1 » Разное - Как взаимодействовать с файлами на смартфоне, подключенном к компьютеру через USB?

Ответить
Настройки темы
Разное - Как взаимодействовать с файлами на смартфоне, подключенном к компьютеру через USB?

Старожил


Сообщения: 177
Благодарности: 2


Конфигурация

Профиль | Отправить PM | Цитировать


Как взаимодействовать с файлами на смартфоне, подключенном к компьютеру через USB-кабель?

Я подключаю свой смартфон к компьютеру через USB-кабель.
Захожу в Мой компьютер и в списке доступных дисков вижу следующее:



Если отрыть свойства, то вот что будет показано:



Захожу внутрь и вижу это:



Захожу еще внутрь и вижу структуру каталогов смартфона:



Хочу автоматизировать некоторые действия по бэкапированию определенных каталогов смартфона (т.е. скопировать файлы из определенных папок на компьютер).
Также хочу удалять файлы из определенных каталогов (лишний мусор).

Для удаления ненужных файлов хочу написать бат-файл что-то типа:
Код: Выделить весь код
DEL C:\cache
Проблема лишь в том, что я не могу получить полный путь к файлам файловой системы смартфона из BAT-файла.

Может можно путь к устройству как-то вытащить, где-то посмотреть?
Ведь раз он отображается в списке дисков как обычный диск, значит как-то к нему можно обратиться.

-------
Готовность человека меняться отражает степень его здравомыслия. Жак Фреско


Отправлено: 22:37, 12-04-2019

 

Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


YuS_2,
Благодарю за информацию.
А переименовывать папку в телефоне через MTP можно? То есть, при копировании с ПК на телефон там уже есть старая папка с файлами, её переименовать, чтобы залить новую...
Хотя наверно проще будет имя новой папки чуть поменять и тогда уже закидывать.

Цитата YuS_2:
Проще подключить устройство по сетке Wi-Fi и управлять файлами в самом устройстве »
Даже как-то не задумывался об этом. Не подскажете где лучше почитать инфу про это?

Отправлено: 17:35, 08-11-2020 | #21



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата YuS_2:
чистого метода удаления нет. »
Разве нет там для папок и файлов глагола «&Удалить» для соответствующих объектов класса FolderItem? У меня есть:
Скрытый текст
Код: Выделить весь код
Option Explicit

Dim objShell

Dim objFolderItem, objFolderItem2
Dim objVerb


Set objShell = WScript.CreateObject("Shell.Application")

For Each objFolderItem In objShell.NameSpace(&H11).Items
	WScript.Echo "[" & objFolderItem.Name & "]"
	
	If StrComp(objFolderItem.Name, "Redmi Note 4", vbTextCompare) = 0 Then
		For Each objFolderItem2 In objFolderItem.GetFolder.Items
			WScript.Echo vbTab & "[" & objFolderItem2.Name & "]"
			
			If StrComp(objFolderItem2.Name, "Внутренний общий накопитель", vbTextCompare) = 0 Then
				With objFolderItem2.GetFolder.ParseName("Sample")
					WScript.Echo vbTab & vbTab & "[" & .Name & "]"
					
					With .GetFolder
						With .ParseName("SampleFolder")
							WScript.Echo vbTab & vbTab & vbTab & "[" & .Name & "]"
							
							For Each objVerb In .Verbs
								If StrComp(objVerb.Name, "&Удалить", vbTextCompare) = 0 Then
									WScript.Echo vbTab & vbTab & vbTab & vbTab & "[" & objVerb.Name & "]"
									'objVerb.DoIt
									
									Exit For
								End If
							Next
						End With
						
						With .ParseName("Sample.txt")
							WScript.Echo vbTab & vbTab & vbTab & "[" & .Name & "]"
							
							For Each objVerb In .Verbs
								If StrComp(objVerb.Name, "&Удалить", vbTextCompare) = 0 Then
									WScript.Echo vbTab & vbTab & vbTab & vbTab & "[" & objVerb.Name & "]"
									'objVerb.DoIt
									
									Exit For
								End If
							Next
						End With
					End With
				End With
				
				Exit For
			End If
		Next
		
		Exit For
	End If
Next

Set objShell = Nothing

WScript.Quit



Alexoner, с такими запросами проще взять Far Manager с плагином PortaDev и делать всё «ручками».
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:53, 08-11-2020 | #22


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1181
Благодарности: 495

Профиль | Отправить PM | Цитировать


Цитата Alexoner:
А переименовывать папку в телефоне через MTP можно? »
Переименовать - нет, можно перенести или создать...
Цитата Alexoner:
Не подскажете где лучше почитать инфу про это? »
Почитать - не знаю. Но самый простой вариант: установить Total Commander из плеймаркета, а также плагин к нему LAN, на компьютере расшарить каталог и получить к нему доступ из тотала, после подключения смарта к сети Wi-Fi. В принципе, есть разные файловые менеджеры, умеющие подобное, например X-plore и т.п.
Также можно установить total commander для ПК и через него управлять файлами на смарте...

Цитата Iska:
Разве нет там для папок и файлов глагола «&Удалить» для соответствующих объектов класса FolderItem? »
Увы и ах... все методы, которые доступны:

-------
scio me nihil scire. Ѫ

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:57, 08-11-2020 | #23


Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
Alexoner, с такими запросами проще взять Far Manager с плагином PortaDev и делать всё «ручками». »
Просто хотел скрипт сделать, чтобы он делал всё "в одно нажатие" и чтобы не зависеть от сторонних программ. Сначала CMD поизучал, а потом на PS перешёл. Так что я везде новичок.
А в VBS функционала больше получается в этом плане?

Отправлено: 20:06, 08-11-2020 | #24


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


YuS_2, это не метод, это глагол, Verb. Метод .Verbs класса FolderItem, возвращает коллекцию FolderItemVerbs.

Надо бы ещё попробовать удалить этим способом. И это:
Цитата YuS_2:
Переименовать - нет »
тож.

Цитата YuS_2:
Но самый простой вариант: установить Total Commander из плеймаркета, а также плагин к нему LAN, на компьютере расшарить каталог и получить к нему доступ из тотала, после подключения смарта к сети Wi-Fi. »
Ругани много в отзывах, что типа работает, увы, через пень-колоду и не везде.


Цитата Alexoner:
А в VBS функционала больше получается в этом плане? »
Меньше. Но в данном случае что WSH, что PoSH пользуют одно и то же средство — объект Automation «Shell.Application», COM-объект Проводника.
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:10, 08-11-2020 | #25


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1181
Благодарности: 495

Профиль | Отправить PM | Цитировать


Цитата Iska:
это не метод, это глагол, Verb. Метод .Verbs класса FolderItem, возвращает коллекцию FolderItemVerbs. »
А, вон про что речь... да, powershell .Verbs понимает именно, как метод:

- да, такой список присутствует. Ведь это метод работы powershell с WSH, всё же, в итоге... другое дело, что я не знаю, что с этим делать дальше, т.е. требуется пинок в этом направлении...
По сути, мы получаем объект System.MarshalByRefObject, но лично мне, это ни о чем, пока... надо углублять знания...

Цитата Iska:
Ругани много в отзывах, что типа работает, увы, через пень-колоду и не везде. »
Ну, не знаю, я пользуюсь, особо серьёзных багов не замечал, на многих устройствах с андроидом использовал... а неработоспособность (тут бы уточнение не помешало, что имеется в виду конкретно), скорее связана с особенностями самого Android и его файловой системой, т.к. параллельно есть ещё и X-plore и если где-то появляется затык, то он проявляется в обоих менеджерах, как правило...

Цитата Iska:
Но в данном случае что WSH, что PoSH пользуют одно и то же средство — объект Automation «Shell.Application» »
угу, именно так...
Только я бы сказал, что здесь powershell использует средство автоматизации: объект Application оболочки Windows, также как и скрипт vbs (через WSH)... сути это конечно не изменит, но так точнее (это мое природное занудство говорит )

-------
scio me nihil scire. Ѫ


Отправлено: 21:40, 08-11-2020 | #26


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1181
Благодарности: 495

Профиль | Отправить PM | Цитировать


Цитата Iska:
Разве нет там для папок и файлов глагола «&Удалить» для соответствующих объектов класса FolderItem? »
Цитата YuS_2:
другое дело, что я не знаю, что с этим делать дальше, т.е. требуется пинок в этом направлении... »
после чтения мануалов, ситуация прояснилась
Глаголы эти формируют контекстное меню проводника.
В powershell их можно задействовать, хоть и не все (например, Переи&меновать - OperationStopped: The method or operation is not implemented.).
Примерно так:
Код: Выделить весь код
...
$item = $items|? isfolder -eq $true
$item.verbs().item(6).doit()
Вот только, действие у них соответствующее: если свойства, то результат в окне, а не в консоли, если удаление, то с подтверждением... т.е. для автоматизации они не годятся, увы.

-------
scio me nihil scire. Ѫ


Отправлено: 22:56, 08-11-2020 | #27


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата YuS_2:
если удаление, то с подтверждением... »
Когда-то с коллегами игрались в эти игрушки. Выяснилось, что для обычной файловой системы вполне работает следующее: предварительное отключение подтверждения удаления (через реестр), вызов глагола &Удалить, обратное включение подтверждения удаления. Но! При работе с эмулируемой файловой системой — в тот раз это была тогдашняя ипостась «Сжатая папка» (реализуемая идущей в комплекте библиотекой zipfldr.dll) — чихать Shell.Application хотел на ряд вроде бы задокументированных моментов, в том числе и на отключение подтверждения удаления. Я не проверял, но есть большое подозрение, что ровно то же может случиться и с файловой системой, эмулируемой посредством протокола MTP.

Цитата YuS_2:
если вместо метода CopyHere, воспользоваться методом MoveHere, то фактически произойдет удаление... »
Кажись, и с таким игрались. Деталей не упомню за давностью лет. Вспомнил: да, сначала получаем объект Корзины, а затем исполняем для него .MoveHere().

Цитата YuS_2:
(например, Переи&меновать - OperationStopped: The method or operation is not implemented.). »
Переименование банальное: FolderItem.Name = "bla-bla-bla", главное — помнить, что для переименовывания папки нужно использовать не сам объект Folder, а его родительский объект FolderItem — Folder.Parent.Name = "New folder name"
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:19, 10-11-2020 | #28


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1181
Благодарности: 495

Профиль | Отправить PM | Цитировать


Цитата Iska:
Когда-то с коллегами игрались в эти игрушки. »
Согласен. В таком виде, как они существуют сейчас, это не более чем игрушки... а решения относительно powershell, больше похожи на костыли.
В итоге, мне показалось, что овчинка не стоит выделки, т.к. есть вполне реализованные программы, для работы с файловой системой устройств, а писать калечный дубликат - не хочется.
В общем, плюнул я на все эти MTP и не стал голову забивать себе...

Цитата Iska:
для переименовывания папки нужно использовать не сам объект Folder, а его родительский объект FolderItem — Folder.Parent.Name = "New folder name" »
Понятно, спасибо...

-------
scio me nihil scire. Ѫ


Отправлено: 09:20, 10-11-2020 | #29


Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: png 2020-11-15_17-17-38.png
(233.3 Kb, 5 просмотров)

YuS_2,
Приветствую.

Попробовал через скрипт скопировать десяток файлов с ПК на телефон. Половина скопировалось, а половина запросила подтверждение.
Есть ли способ как-то обойти подтверждение?
Или может как-то автоматически подтверждать копирование?

PSVersion 5.1.14409.1005
Windows 7 x64
Samsung Galaxy Note 3
Android 4.4.2
Код: Выделить весь код
$phone = "Note 3"
$sour = "C:\testPS\Copy To SGN3"
$dest = "Card\Test"

.\MTP2.ps1 -phone $phone  `
		-sour $sour `
		-dest $dest  -to

Отправлено: 18:00, 15-11-2020 | #30



Компьютерный форум OSzone.net » Клиентские ОС Microsoft » Microsoft Windows 8 и 8.1 » Разное - Как взаимодействовать с файлами на смартфоне, подключенном к компьютеру через USB?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
При подключенном USB устройстве не включается (зависает) компьютер Ment69 Материнские платы и память 18 20-10-2017 08:17
Мышь - Как правильно подключать usb-мышь к компьютеру? doc11111 Прочее железо 1 12-11-2016 19:02
Драйвер - Не могу подключить телефон к компьютеру через USB кабель (отказано в доступе) Behey Microsoft Windows 7 16 06-05-2014 20:39
как взаимодействовать с окном при помощи его заголовка impa AutoIt 5 18-08-2011 10:13
RDP/Citrix/Term - [решено] Как подключиться к удалённому компьютеру через интернет Sasha_wq-1 Сетевые технологии 6 19-10-2009 20:53




 
Переход