PDA

Показать полную графическую версию : [решено] Запрос для wmic


Страниц : [1] 2

SANIOK_AV
15-09-2011, 16:14
Доброго времени суток!
В батнике в зависимости от текущего времени (до 10 утра или после) выполняется или не выполняется определённый блок:wmic.exe path Win32_LocalTime where (Hour^<10) get Hour 2>nul|find.exe /i "Hour">nul && goto :Skip
echo privet
:Skip
Но я хотел бы чтоб этот блок выполнялся, к примеру, после 10 часов 45 минут.
Условие для данного примера я как бы себе представляю: (Hour<10 or (Hour=10 and Minute<45))
Но вот как правильно это записать для wmic.exe ? :idontnow:
Заранее благодарен!

Foreigner
15-09-2011, 16:39
SANIOK_AV,

чтоб этот блок выполнялся, к примеру, после 10 часов 45 минут.

Будет выполняться после 10:45

... where (hour=10 and minute^>45 or hour^>=11) get ....

SANIOK_AV
16-09-2011, 13:33
Foreigner, Спасибо большое, работает!

P.S.: как вариант можно ещё так: set /a t = %time::=%
if %t% leq 104500 goto :Skip
echo privet
:Skip

sov44
25-06-2012, 16:55
Подскажите, как с помощью wmic определить буквы логических дисков, не выводя буквы дисков, занятых флеш накопителями?

Iska
25-06-2012, 17:14
sov44, определить непосредственно USB Flash — вряд ли. А так — пробуйте:
wmic.exe LogicalDisk where "DriveType = 3 AND MediaType=12" get DeviceID
Win32_LogicalDisk class (http://msdn.microsoft.com/en-us/library/windows/desktop/aa394173(v=vs.85).aspx)

sov44
25-06-2012, 17:41
Iska, код подошел. Необходимо вывести в переменную буквы дисков. У меня не получается @echo off
SetLocal enabledelayedexpansion
For /F %%A In (wmic.exe LogicalDisk where "DriveType = 3 AND MediaType=12" get DeviceID) Do (
set dr=%%A
echo !dr!
)
pause

Iska
25-06-2012, 18:02
Например, так:
@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq skip=1" %%i in (`wmic.exe LogicalDisk where "DriveType = 3 AND MediaType=12" get DeviceID`) do (
set sDriveName=%%i
echo [!sDriveName!]
)

endlocal
exit /b 0

sov44
07-08-2012, 21:33
Пробую с помощью WMIC определить наличие вставленной флешки, не получается
@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq skip=1" %%i in (`wmic.exe LogicalDisk where "DriveType=2 And MediaType=NULL" get VolumeName`) do (
findstr.exe /r /c:"^Отсутствуют экземпляры класса.&" >nul &&(echo флешка не вставлена) || (set sDriveName=%%i& echo !sDriveName!)
)
pause
endlocal
exit /b
п.с. можно ли сделать подобное без wmic? (прав администратора может не быть)

Foreigner
07-08-2012, 22:44
Пробую с помощью WMIC определить наличие вставленной флешки, не получается »
А зачем MediaType?


@echo off
setlocal

set "wmic=2>nul wmic logicaldisk where drivetype=2 get volumename /value"

for /f %%i in (' "%wmic%" ') do 1>nul set "%%i"

if not defined volumename (echo usb-flash is not inserted) else (echo label is %volumename%)

sov44
07-08-2012, 23:19
А зачем MediaType? » Прочитал тут (http://forum.oszone.net/post-1559706-9.html)
Foreigner, если флешка не вставлена, пишет "echo label is "

Foreigner
07-08-2012, 23:30
sov44, а ты просто введи команды:

wmic logicaldisk where drivetype=2 get * /value

и

set volumename

Что напишет?

sov44
07-08-2012, 23:43
Что напишет? »
Access=
Availability=
BlockSize=
Caption=A:
Compressed=
ConfigManagerErrorCode=
ConfigManagerUserConfig=
CreationClassName=Win32_LogicalDisk
Description=Дисковод 3,5 дюйма
DeviceID=A:
DriveType=2
ErrorCleared=
ErrorDescription=
ErrorMethodology=
FileSystem=
FreeSpace=
InstallDate=
LastErrorCode=
MaximumComponentLength=
MediaType=5
Name=A:
NumberOfBlocks=
PNPDeviceID=
PowerManagementCapabilities=
PowerManagementSupported=
ProviderName=
Purpose=
QuotasDisabled=
QuotasIncomplete=
QuotasRebuilding=
Size=
Status=
StatusInfo=
SupportsDiskQuotas=
SupportsFileBasedCompression=
SystemCreationClassName=Win32_ComputerSystem
SystemName=1-7BC79D2011CC4
VolumeDirty=
VolumeName=
VolumeSerialNumber=

переменная среды volumename не определена


что я должен увидеть?

Foreigner
08-08-2012, 00:01
Значит drivetype 2 не подойдет, т.к. он еще прихватывает дисковод

Попробуй изменить запрос на:

set "wmic=2>nul wmic logicaldisk where (drivetype=2 and caption!="A:") get volumename /value"

sov44
25-03-2014, 16:44
Подскажите, как вывести список разделов жёстких дисков локального компьютера? Сетевые диски не выводить.

Petya V4sechkin
25-03-2014, 17:41
как вывести список разделов жёстких дисков локального компьютера?
Ответ был дан в сообщении 5 (и вы даже отметили его полезным в 2012 году).

sov44
25-03-2014, 20:58
Спасибо! Заблудился в трёх соснах :) А как вывести список разделов жёстких дисков без сетевых, если в системе нет wmic?

Iska
25-03-2014, 23:50
Использовать WSH/PoSH. Если хотите остаться в рамках а) одного и б) пакетного файла — можно попробовать использовать командную строку в «mshta.exe»:
@echo off
setlocal

for /f "tokens=2 delims=:" %%i in ('chcp') do (
set sPrevCP=%%i
chcp 1251 >nul
)

for /f "usebackq delims=" %%i in (
`@"%systemroot%\system32\mshta.exe" "javascript:var enumItems = new Enumerator(new ActiveXObject('WbemScripting.SWbemLocator').ConnectServer('.', 'root\\CIMV2').ExecQuery('SELECT DeviceID FROM Win32_LogicalDisk WHERE DriveType = 3 AND MediaType = 12')); for(; ^!enumItems.atEnd(); enumItems.moveNext()) {try {new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).WriteLine(enumItems.item().DeviceID )} catch (e){}} close();" ^
1^|more`
) do echo [%%i]

chcp %sPrevCP% >nul

endlocal
exit /b 0

sov44
26-03-2014, 00:37
Iska, на xp код не сработал. http://savepic.su/4249951.jpg

Iska
26-03-2014, 01:51
Iska, на xp код не сработал. »
Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.

E:\Песочница\0369>0008.cmd
[C:]
[D:]
[E:]
[F:]
[H:]
[N:]

E:\Песочница\0369>

Ощущение такое, что там WMI вообще вырезан. Такой скрипт VBScript:
Option Explicit

Dim objSWbemServicesEx

Set objSWbemServicesEx = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")

WScript.Echo TypeName(objSWbemServicesEx)

WScript.Quit 0

исполняется?

sov44
26-03-2014, 07:01
Такой скрипт vbscript..исполняется? http://savepic.su/4246864.jpg

На другой машине с ХР аналогичная ошибка при запуске батника. Может не по феншую запускаю? :dont-know Iska, если не затруднит, выложите батник.




© OSzone.net 2001-2012