Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   даилоговое окно Свойства файла из командной строки (http://forum.oszone.net/showthread.php?t=336138)

aka_smile 11-08-2018 13:17 2825935

даилоговое окно Свойства файла из командной строки
 
Добрый день.
Подскажите как из текущего каталога открыть штатное диалоговое окно windows - Свойства файла - конкретного файла ?
Есть ли нативная команда ?

mwz 11-08-2018 13:57 2825942

Цитата:

Цитата aka_smile
Есть ли нативная команда ? »

Alt+Enter на файле не устраивает?
Или вам нужно из командного файла?

Iska 11-08-2018 18:20 2825960

aka_smile, пакетным файлом — никак. Можно на WSH/PoSH, причём лучше — на PoSH (из-за особенностей реализации поддержки COM-интерфейсов):
Код:

$oShell = New-Object -ComObject 'Shell.Application'

foreach($oVerb in $oShell.NameSpace('C:\Мои проекты\0180').ParseName('Client.dll manager.exe').Verbs()) {
    if($oVerb.Name -eq 'Сво&йства') {
        $oVerb.DoIt()
    }
}


aka_smile 12-08-2018 00:02 2826002

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

Часто смотрю какая версия длл файла на кассе.
И только из за этого вопроса нужен проводник.

Эх, жаль что нет короткой штатной команды

Спасибо

Iska 12-08-2018 01:36 2826011

aka_smile, тогда Вам следовало озвучивать проблему, а не просить помочь с уже выбранным и неправильным решением. Это же совсем другое дело — показать версию выбранного файла.

1. Вы можете использовать filever.exe из комплекта Support Tools для Windows 2000, XP, 2003 (How to use the Filever.exe tool to obtain specific information about a file in Windows, отсюда же можно загрузить Support Tools для Windows XP SP2, далее его можно либо установить, либо просто извлечь filever.exe из cab-файла):
Скрытый текст


2. Вы можете использовать WSH, например:
Скрытый текст
Код:

Option Explicit

Dim strSourceFile

If WScript.Arguments.Count = 1 Then
        strSourceFile = WScript.Arguments.Item(0)
       
        With WScript.CreateObject("Scripting.FileSystemObject")
                If .FileExists(strSourceFile) Then
                        WScript.Echo .GetFileVersion(strSourceFile)
                Else
                        WScript.Echo "Can't find source file [" & strSourceFile & "]."
                        WScript.Quit 2
                End If
        End With
Else
        WScript.Echo "Usage: cscript.exe //nologo """ & WScript.ScriptName & """ <Source file>"
        WScript.Quit 1
End If

WScript.Quit 0



3. Вы можете использовать PowerShell, в том числе прямо из командной строки, например:
Скрытый текст
Код:

powershell.exe -Command "([System.IO.FileInfo]'iadstools.dll').VersionInfo"


4. Наконец, можно просто установить Far Manager, добавить плагин FileVer или плагин Version Info и раз и навсегда забыть об окне «Свойства»:
Скрытый текст




Busla 12-08-2018 13:29 2826056

Я бы сказал, основной метод:
Код:

wmic datafile "c:\\Windows\\notepad.exe" get Version
потому что он же используется в фильтре групповых политик

Iska 12-08-2018 13:43 2826062

Цитата:

Цитата Busla
wmic datafile "c:\\Windows\\notepad.exe" get Version »

Забыл :).

aka_smile 14-08-2018 01:18 2826277

Цитата:

Цитата Busla
wmic datafile "c:\\Windows\\notepad.exe" get Version »

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

а возможно ли укоротить команду, находясь в текущем каталоге?.
А то ж ответ такой..

Код:

c:\windows> wmic datafile notepad.exe get version
Отсутствуют экземпляры

Iska, предложенные вами рекомендации минутозатратны для работы "в полях".
да и потом, на кассах клиентов права ограничены, поэтому спросил о штатном инструменте

Iska 14-08-2018 02:09 2826280

Цитата:

Цитата aka_smile
хотя могли бы мелкие могли бы и покороче сделать команду) »

Цитата:

Цитата aka_smile
а возможно ли укоротить команду, находясь в текущем каталоге?.
А то ж ответ такой..
Код:

c:\windows> wmic datafile notepad.exe get version
Отсутствуют экземпляры

»

Покороче — не получится: полный путь к файлу — является квалификатором, по которому указанный файл идентифицируется среди прочих. Пространство имён плоское, никакой иерархии, потому — никаких «текущих каталогов», точнее — вообще никаких каталогов, только файлы, единым общим списком. Когда указывается полный путь — файл выбирается сразу, без поиска. Если попытаться указать только имя, задействовав условие:
Код:

wmic.exe DataFile where "FileName = 'notepad' AND Extension = 'exe'" Get Name, Version
— начнётся перебор всех файлов во всех доступных местах, та ещё радость по затратам времени — можно будет двадцать раз успеть набрать полный путь «ручками». Зато будут найдены все наличествующие Блокноты, даже те, о которых Вы, может быть, и не подозревали :lol:.

Цитата:

Цитата aka_smile
неудобство разве в том, что автозавершение по Таб не работает, потому что есть 2 косых черты »

Работает. Только потом надо будет пройтись по команде и ручками добавить в путь вторые экранирующие слэши.

Цитата:

Цитата aka_smile
Iska, предложенные вами рекомендации минутозатратны для работы "в полях".
да и потом, на кассах клиентов права ограничены, поэтому спросил о штатном инструменте »

В чём плюс размещения вопроса на форуме, а не стучании в личку (как любят поступать некоторые несознательные товарищи) — что дать ответ может любой участник, и если один что-то запамятовал, то другой не преминет напомнить об упущенном.

Iska 14-08-2018 03:17 2826282

aka_smile, в общем, я Вам отчасти соврамши.
Цитата:

Цитата aka_smile
а возможно ли укоротить команду, находясь в текущем каталоге?. »

Немного сократить таки можно, до:
Код:

wmic.exe DataFile "%cd:\=\\%\\notepad.exe" get Version

Serguei Kouzmine 14-08-2018 04:44 2826286

@aka_smile так сохраните куда нибудь в пути .cmd файл ?

a.cmd:
Код:

@echo OFF
set target=%1
set key=%target:\=\\%
call wmic.exe DataFile  "%key%" get Version /format:list

и вызывйте
Код:

a c:\Windows\notepad.exe
Код:

Version=6.3.9600.17930

aka_smile 14-08-2018 04:55 2826287

Serguei Kouzmine,
Обращаю внимание, работа "в полях" является мобильным направлением и чтобы воткнуть флешку, иногда нужно залезть под стол и умудриться найти свободный УСБ порт, а если его нет то вытащить другое оборудование, а также надо умудритсяь по уходу не забыть забрать флешку, что часто бывает в нашем деле.
Поэтому я и просто что-то быстрое, простое, штатное.

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

после всех этих рисований понял, что
Код:

start.
использовать выгоднее, а потом на файле alt+enter..

Serguei Kouzmine 17-08-2018 19:23 2827150

@aka_smile посмотрите еще раз на теперь правильно отформатированный пример bat файла в моем посте выше


Время: 23:10.

Время: 23:10.
© OSzone.net 2001-