Что нового

[Файловая система] Передача командной строки с компонентом "Clip" - copies the data into clipboard

Torumin

Новичок
Сообщения
3
Репутация
0
Доброго времени суток уважаемые

Сломал голову напрочь, необходимо выгрузить информацию возвращаемую программой (UsbDeview) напрямую в буфер обмена используя стандартный компонент Windows - "Clip"

Если поместить строку "USBDeview.exe /stab "" | clip" в файл "Run.cmd" и запустить - получим положительный результат (все будет в буфере обмена)
Если же выполнить это из под AutoIT, к примеру "Run (@ScriptDir & '\usbdeview-x86\run.cmd')" - получим отрицательный результат

Что то наталкивает меня на мысль что AutoIT не понимает системную переменную "PATH", перепробовал крайне разные варианты:

Код:
$Path = @ScriptDir & '\usbdeview-x86\'
          ShellExecuteWait($Path & 'USBDeview.exe /stab' & Chr(34) & Chr(34)&' | clip')
	  ShellExecuteWait( "USBDeview.exe", '/stab' & Chr(34) & Chr(34)&' | clip', $Path) 
	  ShellExecute($Path & 'USBDeview.exe ','/stab "" | clip',$Path )
          RunWait($Path & 'USBDeview.exe /stab' & Chr(34) & Chr(34)&' | clip')

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

p.s. дабы избежать нелепых вопросов и просто понятия ситуации, это необходимо для запуска основного скрипта с компакт диска под Windows XP с ограниченными возможностями учетных записей по записи на ЖМД, и использованием при этом данных из программы UsbDeview
 

InnI

AutoIT Гуру
Сообщения
4,951
Репутация
1,446
Re: [Файловая система] Передача командной строки с компонентом "Clip" - copies the data into clipbo

Не скажу про WinXP, тем более с ограниченными учётками, но на Win7x86 работает так
Код:
$Path = @ScriptDir & '\usbdeview-x86\'
RunWait(@ComSpec & ' /c chcp 1251 && ' & $Path & 'USBDeview.exe /stab "" | clip', '', @SW_HIDE)
 
Автор
T

Torumin

Новичок
Сообщения
3
Репутация
0
Re: [Файловая система] Передача командной строки с компонентом "Clip" - copies the data into clipbo

InnI огромная благодарность, все работает, но возникает подчиненная проблема, как в таком случае правильно передать путь в кавычках, чтобы не возникало ошибок при наличии пробелов в пути.

Код:
if @OSArch = 'X86' then
    $Path = @ScriptDir & '\usbdeview-x86\'
Else
    $Path = @ScriptDir & '\usbdeview-x64\'
EndIf
;------------

MsgBox(0,@ComSpec,$Path)
RunWait(@ComSpec & ' /c chcp 1251 && ' & $Path & 'USBDeview.exe /stab "" | clip', '', @SW_HIDE )
MsgBox(0,"",ClipGet())
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: [Файловая система] Передача командной строки с компонентом "Clip" - copies the data into clipbo

Torumin [?]
как в таком случае правильно передать путь в кавычках
Код:
;~ ...
RunWait(@ComSpec & ' /c chcp 1251 && "' & $Path & 'USBDeview.exe" /stab "" | clip', '', @SW_HIDE )
;~ ...
 
Автор
T

Torumin

Новичок
Сообщения
3
Репутация
0
Re: [Файловая система] Передача командной строки с компонентом "Clip" - copies the data into clipbo

madmasles - низкий поклон, задача решена, огромное спасибо за содействие.
 
Верх