Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Сценарии для Windows

Модерирует : KLASS, IFkO

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225

Открыть новую тему     Написать ответ в эту тему

KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Старые и смежные темы: по CMD и в Программах | по PowerShell | В помощь системному администратору | Прикладное программирование

PowerShell
Версии | Ассоциация и подпись сценариев
Сценарий для ассоциации файлов PowerShell и запуска неподписанных скриптов.
 
Прочее
Расширение возможностей
Функции
Write-Color
Output-DebugString
Провайдеры
Готовые скрипты
Полезные ссылки | Будет ли репозиторий PowerShell на ru-board?
Книги в PDF
Cheat Sheets
 

Cmd
Для перекодирования кириллицы 866<—>1251 пользуйтесь онлайн сервисом Перекодировщик кириллицы
 
Готовые решения и частые вопросы
 
Описания работы команд и символов участниками темы:
setlocal enabledelayedexpansion и переменные окружения
символы & и && в командной строке
Переменная %0
 
Полезные ссылки и утилиты

WSH (VBScript, JScript)
Программирование "удобняшек" на VBScript

Примечания:
• Большие куски кода заключайте в тэг [ more ]
• Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте код без пробелов иначе сценарий может работать неправильно. Также для удаления концевых пробелов пользуйтесь скриптом от Nagual, или VBS-Скрипт-Модулем от ViSiToR.
• Сторонние консольные утилиты можно использовать только в виде готового решения и только в рамках сценариев. Никаких обсуждений и обучений работе с утилитами не предусмотрено и прямо запрещено правилами топика.
Шапка и около-темные вопросы |

Всего записей: 11062 | Зарегистр. 12-10-2001 | Отправлено: 13:40 17-02-2018 | Исправлено: YuS 2, 08:24 19-06-2021
PhoenixUA



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT

Цитата:
Работает только в домене:  


Цитата:
user001 - доменное, типо DOMAIN\user001

Всего записей: 2184 | Зарегистр. 17-11-2005 | Отправлено: 17:33 26-09-2019
Nemos19

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите как сделать?
Есть папка с файлами base64, надо перекодировать в jpg в другую папку на компьютер (файлов много хотелось бы пакетно).
 
https://yadi.sk/d/-qEHmJCs44P43w
 
Первые семь файлов из папки.
система W 10

Всего записей: 55 | Зарегистр. 23-06-2011 | Отправлено: 21:02 26-09-2019 | Исправлено: Nemos19, 21:04 26-09-2019
NIKZZZZ



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nemos19
Если без сторонних утилит, можно комбинированным bat/js скриптом

Код:
@if (true == false) @end /*
::Base64 Decoder
::@Nikzzzz 08.09.2018
@echo off
::Декодер
set decode=cscript /nologo /e:jscript "%~f0" %*
::Исходный каталог
set source=e:\b64\Source
::Результат
set dest=e:\b64\Dest
 
>nul 2>&1 md "%dest%"
for /f "delims=" %%# in ('dir /b /a:-d "%source%\*.*"') do (
  echo;"%source%\%%#" ^>^> "%dest%\%%#"
  <"%source%\%%#" %decode% "%dest%\%%#"
)
goto :eof
 
*/
var Base64 = {
    _keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
    decode : function (input) {
        var output = "";
        var chr1, chr2, chr3;
        var enc1, enc2, enc3, enc4;
        var i = 0;
        input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
        while (i < input.length) {
            enc1 = this._keyStr.indexOf(input.charAt(i++));
            enc2 = this._keyStr.indexOf(input.charAt(i++));
            enc3 = this._keyStr.indexOf(input.charAt(i++));
            enc4 = this._keyStr.indexOf(input.charAt(i++));
            chr1 = (enc1 << 2) | (enc2 >> 4);
              chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
            chr3 = ((enc3 & 3) << 6) | enc4;
            output = output + String.fromCharCode(chr1);
            if (enc3 != 64) {
                output = output + String.fromCharCode(chr2);
            }
            if (enc4 != 64) {
                output = output + String.fromCharCode(chr3);
            }
        }
        return output;
    }
}
var stream = new ActiveXObject('ADODB.Stream');
stream.Type = 2;
stream.Charset = 'ISO-8859-1'
stream.Open();
stream.WriteText(Base64.decode(WScript.StdIn.ReadAll()));
stream.SaveToFile(WScript.Arguments(0),2);
stream.Close();  


Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 22:39 26-09-2019 | Исправлено: NIKZZZZ, 22:51 26-09-2019
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FromBase64.ps1

Код:
param (
    [Parameter(ValueFromPipelineByPropertyName, Mandatory)] [string] $FullName
)
process {
    $Base64 = Get-Content -LiteralPath $FullName
    $File = Get-Item -LiteralPath $FullName
    $NewName = ($File).BaseName + '-converted'
    $Path = "{0}\{1}{2}" -f $File.Directory, $NewName, $File.Extension
    $Bytes = [Convert]::FromBase64String($Base64)
    [IO.File]::WriteAllBytes($Path, $Bytes)
}

 
вызов для всех файлов в указанной папке: PS C:\> ls 'C:\002\' | C:\FromBase64.ps1
вызов для одного файла: PS C:\> C:\FromBase64.ps1 -FullName 'C:\002\0001.jpg'

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 22:49 26-09-2019
YuS_2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
Если складывать результат в ту же папку, то, возможно, имеет смысл добавить проверку существования целевого файла, а также исключающий фильтр уже декодированных файлов.
Примерно так:

Код:
$path = '.\002'
$inc = '*.jpg'
$exc = 'new_*.jpg'
 
dir "$path\*" -inc $inc -exc $exc -file|%{
    $file = $_.directoryname + '\new_' + $_.name
    if(!(test-path $file -patht leaf)){
        [convert]::frombase64string($(gc $_.fullname -raw))|
        sc $file -enc byte
    }
}

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 23:44 26-09-2019
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FromBase64.ps1 вариант…

Код:
param (
    # Полное имя файла для конвертации или результат команды: Get-ChildItem
    [Parameter(ValueFromPipelineByPropertyName, Mandatory)]
    [ValidateNotNullOrEmpty()]
    [string] $FullName,
 
    # Директория куда сохранять конвертированные файлы, по умолчанию папка,
    # где оригинальные файлы
    [string] $SaveDirectory,
 
    # Добавляемая строка к имени файла, по умолчанию "-converted"
    [string] $AppendName = '-converted',
 
    # Расширение файла, по умолчанию такое же, как и у оригинального файла
    [string] $Extension,
 
    # Переключатель, куда добавлять строку, до или после базового имени,
    # по умолчанию не указано = после
    [switch] $Before
)
 
process {
    if (-not (Test-Path -LiteralPath $FullName -PathType Container)) {
        if (-not (Test-Path -LiteralPath $FullName)) {
            throw "Файл: $FullName - не найден!"
        }
 
        $File = Get-Item -LiteralPath $FullName
 
        if ($Before) {
            $NewName = $AppendName + ($File).BaseName
        } else {
            $NewName = ($File).BaseName + $AppendName
        }
 
        if ([string]::IsNullOrEmpty($SaveDirectory)) {
            $SaveDirectory = $File.Directory
        }
 
        if (-not (Test-Path -LiteralPath $SaveDirectory -PathType Container)) {
            throw "Директории $SaveDirectory - не существует!"
        }
 
        if ([string]::IsNullOrEmpty($Extension)) {
            $Extension = $File.Extension
        }
 
        $NewFullName = "{0}\{1}{2}" -f $SaveDirectory, $NewName, $Extension
 
        if ($FullName -Like "*$AppendName*") {
            "Файл <$FullName> - с $AppendName существует!"
        } else {
            $Base64 = Get-Content -LiteralPath $FullName -ReadCount 1000
            $Skip = $false
 
            try {
                $Bytes = [Convert]::FromBase64String($Base64)
            } catch {
                "<$FullName> - $($Error[0].Exception.Message)"
 
                $Skip = $true
            }
 
            if (-not $Skip) {
                try {
                    [IO.File]::WriteAllBytes($NewFullName, $Bytes)
                } catch {
                    $Error[0].Exception.Message
                }
            }
        }
    }
}

 
($FullName -Like "*$AppendName*")
А может и не проверять, пусть множатся файлы, может так надо, кому то

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 11:07 27-09-2019 | Исправлено: iNNOKENTIY21, 22:53 27-09-2019
YuS_2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21

Цитата:
пусть множатся файлы

Да множатся-то пусть... тут, смысл в том, чтобы повторного декодирования не происходило и не было попыток декодировать файлы не предназначенные для этого. А так, да - в принципе, это уже вопрос для пользующегося, что же ему надо...

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 14:49 27-09-2019
Alex1985

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
рискну повторить вопрос.
кто может объяснить\кинуть ссылку почитать, почему данный код вместо таймштампа выдаёт бред?

Код:
@echo off
setlocal enabledelayedexpansion
if not defined test (
    for /f "tokens=1* delims==" %%a in (
        '"wmic path win32_localtime get Year,Month,Day,Hour,Minute /value|find "^=""'
    ) do set "%%a=%%b"
    set test=!Year!_!Month!_!Day!_!Hour!_!Minute!
echo !test!
)

я уже решил проблему вызовом этого куска через call.
я уже понял что это из-за раскрытия переменной внутри скобок.
деталей хочется.

Всего записей: 814 | Зарегистр. 07-05-2004 | Отправлено: 20:56 27-09-2019 | Исправлено: Alex1985, 20:56 27-09-2019
YuS_2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex1985

Цитата:
рискну повторить вопрос.

Рискну повторить ответ:
Посмотрите на код, который у вас и на код, который у меня... сравните и сделайте выводы.
Если Вы вносите в код какие-то свои правки, без понимания синтаксиса, то, вполне вероятна ситуация, что в итоге получите не то, что ожидаете...
 
Вообще, тот Ваш, первый вариант, составлен неверно и переменные вовсе не требуют создания внутри условного блока.
Используйте второй вариант, а именно, вот этот:

Код:
@echo off
if not defined test (
    for /f "tokens=1* delims==" %%a in (
        '"wmic path win32_localtime get Year,Month,Day,Hour,Minute /value|find "^=""'
    ) do set "%%a=%%b"
)
set test=%Year%_%Month%_%Day%_%Hour%_%Minute%
echo %test%

- здесь вообще не требуется использовать отложенное раскрытие...

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 21:48 27-09-2019 | Исправлено: YuS_2, 21:54 27-09-2019
Alex1985

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2
это часть большого скрипта. в скобках, после задания переменной, идёт упаковка 7-zip с использованием значения этой переменной, в качестве имени.
задача получать таймштамп именно в скобках, в скобках же и использовать.
в моём предыдущем посте, если урезать значение то !Year! то переменная создаётся нормально. но стоит добавить _!Month!, ломается само имя переменной. ну и значение заодно. и это для меня непонятно.

Всего записей: 814 | Зарегистр. 07-05-2004 | Отправлено: 22:14 27-09-2019 | Исправлено: Alex1985, 22:20 27-09-2019
YuS_2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex1985

Цитата:
после задания переменной, идёт упаковка 7-zip

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

Код:
if not defined test (
    for /f "delims=" %%a in (
        '"wmic path win32_localtime get Year,Month,Day,Hour,Minute /value|find "^=""'
    ) do set "%%~a"
)  
set "test=%Year%_%Month%_%Day%_%Hour%_%Minute%"
echo %test%


Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 22:18 27-09-2019 | Исправлено: YuS_2, 22:21 27-09-2019
Alex1985

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
громоздко. проще оказалось сделать

Цитата:
 я уже решил проблему вызовом этого куска через call.  

вопрос то не в том как сделать, а почему ломается имя переменной, да так хитро. ну да ладно.

Всего записей: 814 | Зарегистр. 07-05-2004 | Отправлено: 22:23 27-09-2019
YuS_2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex1985

Цитата:
громоздко

Чего-чего?
Ваш, приведенный код - "не громоздко"?
Вы вообще код читаете или что?  
Это, собственно, ваш же код, с вашей же переменной... да ещё и укороченный, т.к. он просто оптимизирован и лишнее удалено из него. Но это, всё тот же самый код...
 
Добавлено:

Цитата:
вопрос то не в том как сделать, а почему ломается имя переменной, да так хитро.

Всё просто - это CMD, там и не такое возможно.

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 22:34 27-09-2019
BorlandIMHO

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex1985
Вообще говоря, если нужен "стандартный таймштамп", то не нужно изобретать велосипед. "Всё уже украдено до нас" ©...

Код:
wmic.exe OS get LocalDateTime

выдаёт готовый таймштамп. Со всеми добавленными необходимыми нулями и даже миллисекундами и смещением относительно UTC.
Если по какой-либо причине вас не устраивает формат - никто не мешает отформатировать так, как нужно...
YuS_2
Вариант '"wmic path win32_localtime get Year,Month,Day,Hour,Minute /value|find "^=""' тоже правильный, да. Но, сдаётся мне, он содержит несколько больше операций присвоения, и будет работать медленнее. Единственная причина, по которой я стал бы такое использовать - если нужно получить не только таймштамп в текущей таймзоне, но и по-отдельности его составляющие (год-месяц-день-часы-минуты-секунды, а также номер дня в неделе и другие "плюшки").
Более элегантным (на мой взгляд) выглядит вариант:
Код:
@echo off
if not defined test call :GETTIMESTAMP test
echo %test%  
pause
goto :EOF
 
:GETTIMESTAMP
for /f  "delims=" %%A in ('wmic.exe OS get LocalDateTime ^|find "."') do set "TIMESTAMP=%%A"
set "%1=%TIMESTAMP:~0,4%_%TIMESTAMP:~4,2%_%TIMESTAMP:~6,2%_%TIMESTAMP:~8,2%_%TIMESTAMP:~10,2%"
goto :EOF
 

Он позволяет, в том числе, получать несколько таймштампов в различные переменные (имя переменной, в которую записывается таймштамп, является параметром при вызове подпрограммы).
И при этом содержит ровно 2 операции присвоения...
 
(добавлено позже)
А если при этом не заморачиваться с форматированием и использовать стандартный таймштамп - можно вообще обойтись без подпрограммы и с одной операцией присвоения:
Код:
@echo off
if not defined test for /f  "delims=" %%A in ('wmic.exe OS get LocalDateTime ^|find "."') do set "test=%%A"
echo %test%  
pause
goto :EOF
 


----------
http://www.imho.ws

Всего записей: 2388 | Зарегистр. 12-10-2006 | Отправлено: 22:37 27-09-2019 | Исправлено: BorlandIMHO, 22:55 27-09-2019
YuS_2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BorlandIMHO

Цитата:
Более элегантным (на мой взгляд) выглядит вариант

Эхмм, мне-то вообще это не нужно и код этот приведен Alex1985-ом, а я просто привел его к рабочему состоянию.
На мой же взгляд, если речь про элегантность, использовать cmd, особенно для работы со временем... ну, если только не останется других вариантов, например, в win98 или win2000 или ещё в каком-либо музейном экспонате, но там и wmic, если не ошибаюсь, ещё не присутствовала...

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 22:51 27-09-2019 | Исправлено: YuS_2, 22:53 27-09-2019
VVL99

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex1985 (пост)
Цитата:
почему ломается имя переменной

А вы проверку сделайте, где ломается переменная.

Код:
@echo off  
setlocal enabledelayedexpansion  
if not defined test (  
    for /f "tokens=1* delims==" %%a in ('"wmic path win32_localtime get Year,Month,Day,Hour,Minute /value|find "^=""') do set /a %%a+=%%b
    set test=!Year!_!Month!_!Day!_!Hour!_!Minute! & echo !test!
)
pause
 

Код:
 
@echo off  
if not defined test (  
    for /f "tokens=1* delims==" %%a in ('"wmic path win32_localtime get Year,Month,Day,Hour,Minute /value|find "^=""') do set /a %%a+=%%b
)
set test=%Year%_%Month%_%Day%_%Hour%_%Minute%
echo %test%
pause

Всего записей: 4158 | Зарегистр. 03-02-2011 | Отправлено: 23:04 27-09-2019
BorlandIMHO

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2

Цитата:
если только не останется других вариантов, например, в win98 или win2000 или ещё в каком-либо музейном экспонате, но там и wmic, если не ошибаюсь, ещё не присутствовала...

Впервые появилась в XP. Вы бы ещё DOS вспомнили...
В 9x, NT4 и 2000 прокатывает вариант с MSHTA (после установки обнов и Windows Scripting Host)... При том, что PS на них не встанет в принципе, а wscript придётся-таки доустанавливать отдельно...

----------
http://www.imho.ws

Всего записей: 2388 | Зарегистр. 12-10-2006 | Отправлено: 23:18 27-09-2019 | Исправлено: BorlandIMHO, 23:21 27-09-2019
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2

Цитата:
чтобы повторного декодирования не происходило и не было попыток декодировать файлы не предназначенные для этого

Простой проверкой имени этого не избежать. А конвертер достаточно умный, сам проверяет и генерит ошибку, которую и перехватываем, выводим с именем файла и ставим семафор $Skip

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 23:28 27-09-2019
YuS_2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BorlandIMHO

Цитата:
Вы бы ещё DOS вспомнили...

А чего её вспоминать? Как вчера было... только там cmd не существует, только command.com

Цитата:
Впервые появилась в XP.

в XP и powershell хорошо работает...
 

Цитата:
При том, что PS на них не встанет в принципе, а wscript придётся-таки доустанавливать отдельно...

Вот-вот...
Есть ещё такой вариант:

Код:
@echo off
rem получаем дату в формате не зависящем от версии ОС
echo.>"%temp%\~.ddf"
>nul makecab /d RptFileName="%temp%\~.rpt" /d InfFileName="%temp%\~.inf" -f "%temp%\~.ddf"
for /f "tokens=4,5,6,7,8,9 delims=: " %%a in ('type "%temp%\~.rpt"') do (
    if not defined m call :month %%a
    if not defined current-date (call set "current-date=%%f-%%m%%-%%b")
    if not defined current-time (call set "current-time=%%c:%%d:%%e")
)
del /q "%temp%\~.*"
echo. "%current-date%" "%current-time%"
pause&exit
 
rem перевод формата MMM -> MM
:month
if "%1"=="Jan" set "m=01"
if "%1"=="Feb" set "m=02"
if "%1"=="Mar" set "m=03"
if "%1"=="Apr" set "m=04"
if "%1"=="May" set "m=05"
if "%1"=="Jun" set "m=06"
if "%1"=="Jul" set "m=07"
if "%1"=="Aug" set "m=08"
if "%1"=="Sep" set "m=09"
if "%1"=="Oct" set "m=10"
if "%1"=="Nov" set "m=11"
if "%1"=="Dec" set "m=12"
exit /b

вполне себе... за неимением журавля...

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 23:34 27-09-2019
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Шрифт приглянулся, для консоли, редакторов с лигатурами: sublime, visual code… GitHub - tonsky/FiraCode: Monospaced font with programming ligatures
 
Выглядит monospace код: в Firefox

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 23:43 27-09-2019
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Сценарии для Windows


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru