Войти

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


mcintosh55
14-06-2016, 20:55
Добрый день!!! Помогите вытащить число
vssadmin list shadowstorage /On=%systemdrive%

вывод команды
Для тома: (C:)\\?\Volume{32e8b0b0-0000-0000-0000-a03000000000}\
Том хранилища теневой копии: (C:)\\?\Volume{32e8b0b0-0000-0000-0000-a03000000000}\
Использованный объем хранилища теневой копии: 218 МБ (0%)
Выделенный объем хранилища теневой копии: 544 МБ (0%)
Максимальный объем хранилища теневой копии: 8,31 ГБ (10%)

Меня интересует число 10 (без %) в строке Максимальный объем хранилища теневой копии

Iska
15-06-2016, 02:04
вывод команды »
Вывод команды несколько больше, нежели Вы привели.

Например, так:
@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq tokens=2 delims=(%%" %%i in (
`vssadmin.exe List ShadowStorage /On^=%SystemDrive% ^| find.exe /i "Максимальный объем хранилища теневой копии:"`
) do set /a iResult = %%i

if defined iResult echo %iResult%

endlocal
exit /b 0

mcintosh55
18-06-2016, 06:57
Например, так: »
все ок, только скрипт надо запускать с правами администратора

mcintosh55
18-06-2016, 07:44
Iska не подскажите, что надо поменять в коде, чтоб получить 8,31 число

Iska
18-06-2016, 09:11
Попробуйте так:
@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq tokens=6 delims= " %%i in (
`vssadmin.exe List ShadowStorage /On^=%SystemDrive% ^| find.exe /i "Максимальный объем хранилища теневой копии:"`
) do set sResult=%%i

if defined sResult echo %sResult%

endlocal
exit /b 0

mcintosh55
18-06-2016, 11:12
еще не подскажите, в условии если число не равно 12 то расширить хранилище до 12GB пишет не правильное значение
@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq tokens=6 delims= " %%i in (
`vssadmin.exe List ShadowStorage /On^=%SystemDrive% ^| find.exe /i "Максимальный объем хранилища теневой копии:"`
) do set sResult=%%i

if defined sResult echo %sResult%
pause
if %sResult% neq 12 (
vssadmin Resize ShadowStorage /For=C: /On=C: /MaxSize=12GB
)

pause

endlocal
exit /b 0

Iska
18-06-2016, 13:49
пишет не правильное значение »
Где пишет? Покажите скриншот хотя бы.

mcintosh55
18-06-2016, 14:37
пишет в консоле и окно резко исчезает, пишет "не предвиденное значение"

Iska
18-06-2016, 14:57
пишет в консоле и окно резко исчезает »
Откройте окно командного процессора и уже в нём исполняйте пакетный файл. А ещё лучше — загрузите, установите и используйте Far Manager.

mcintosh55
18-06-2016, 16:14
Откройте окно командного процессора и уже в нём исполняйте пакетный файл »
точно, тупанул

вот что пишет: "не предвиденное появление: 98"

Iska
18-06-2016, 18:25
mcintosh55, закомментируйте первую строку:
rem @echo off
исполните пакетный файл, покажите скриншот или полный текст вывода.

mcintosh55
19-06-2016, 04:34
C:\Windows\system32>rem @echo off

C:\Windows\system32>for /F "usebackq tokens=6 delims= " %i in (`vssadmin.exe List ShadowStorage /On=C: | find.exe /i "Максимальный объем хранилища теневой копии:"`) do set sResult=%i

C:\Windows\system32>set sResult=9,15

C:\Windows\system32>if defined sResult echo 9,15
9,15
Непредвиденное появление: 15.
C:\Windows\system32>if 9,15 neq 12 (vssadmin Resize ShadowStorage /For=C: /On=C: /MaxSize=12GB)

Iska
19-06-2016, 04:56
mcintosh55, при работе с интерпретатором команд Вам придётся довольствоваться целочисленной арифметикой. То есть:
@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq tokens=2 delims=(,.%%" %%i in (
`vssadmin.exe List ShadowStorage /On^=%SystemDrive% ^| find.exe /i "Максимальный объем хранилища теневой копии:"`
) do set /a iResult = %%i

if defined iResult echo %iResult%

endlocal
exit /b 0
и:
@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq tokens=6 delims=,. " %%i in (
`vssadmin.exe List ShadowStorage /On^=%SystemDrive% ^| find.exe /i "Максимальный объем хранилища теневой копии:"`
) do set /a iResult = %%i

if defined iResult echo %iResult%

endlocal
exit /b 0
и:
@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq tokens=6 delims=,. " %%i in (
`vssadmin.exe List ShadowStorage /On^=%SystemDrive% ^| find.exe /i "Максимальный объем хранилища теневой копии:"`
) do set /a iResult = %%i

if defined iResult if %iResult% neq 12 vssadmin.exe Resize ShadowStorage /For=%SystemDrive% /On=%SystemDrive% /MaxSize=12GB

endlocal
exit /b 0

mcintosh55
19-06-2016, 04:58
а почему тогда не меняются настройки vss? условие вроде без ошибок срабатывает

Все работает, спасибо!!!




© OSzone.net 2001-2012