Компьютерный форум 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=315858)

mcintosh55 14-06-2016 20:55 2642812

как вытащить число
 
Добрый день!!! Помогите вытащить число
Код:

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 2642851

Цитата:

Цитата 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


mcintosh55 18-06-2016 06:57 2643682

Цитата:

Цитата Iska
Например, так: »

все ок, только скрипт надо запускать с правами администратора

mcintosh55 18-06-2016 07:44 2643684

Iska не подскажите, что надо поменять в коде, чтоб получить 8,31 число

Iska 18-06-2016 09:11 2643698

Попробуйте так:
Скрытый текст
Код:

@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 2643724

еще не подскажите, в условии если число не равно 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 2643758

Цитата:

Цитата mcintosh55
пишет не правильное значение »

Где пишет? Покажите скриншот хотя бы.

mcintosh55 18-06-2016 14:37 2643771

пишет в консоле и окно резко исчезает, пишет "не предвиденное значение"

Iska 18-06-2016 14:57 2643776

Цитата:

Цитата mcintosh55
пишет в консоле и окно резко исчезает »

Откройте окно командного процессора и уже в нём исполняйте пакетный файл. А ещё лучше — загрузите, установите и используйте Far Manager.

mcintosh55 18-06-2016 16:14 2643790

Цитата:

Цитата Iska
Откройте окно командного процессора и уже в нём исполняйте пакетный файл »

точно, тупанул

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

Iska 18-06-2016 18:25 2643806

mcintosh55, закомментируйте первую строку:
Код:

rem @echo off
исполните пакетный файл, покажите скриншот или полный текст вывода.

mcintosh55 19-06-2016 04:34 2643874

Код:

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 2643875

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 2643877

а почему тогда не меняются настройки vss? условие вроде без ошибок срабатывает

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


Время: 20:41.

Время: 20:41.
© OSzone.net 2001-