Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/30: Рейтинг темы: голосов - 30, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 14.02.2019
Сообщений: 32

Пакетное перемещение файлов

14.02.2019, 07:57. Показов 6345. Ответов 19

Студворк — интернет-сервис помощи студентам
Добрый день, уважаемые программисты!
Очень нужна ваша помощь.
Суть проблемы:
Есть файлы (отчеты) с названием номера куста и скважины, например 42-2165.pdf. У каждой скважины есть свой индивидуальный номер (UWI код). Для этой скважины UWI код выглядит следующим образом: 086617042_02165_ .
в этом коде содержится и номер куста и номер скважины. Также имеется заранее созданные директории папок для каждой скважины, которые состоят из UWI кода скважины\даты исследования\номера исследования; для конкретно этой скважины полный путь директории выглядит следующим образом- D:\086617042_02165_\05022019\1. Файлов с отчетами большое количество, и необходимо перемещение нужных файлов по их директориям. Как это можно сделать, чтобы происходило распознавание по имени файла, их сопоставление с директориями, перемещение этого файла в конечную папку D:\086617042_02165_\05022019\1 , и последующее переименование файла в "otchet.pdf".
Если у вас есть возможность, помоги пожалуйста!!!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.02.2019, 07:57
Ответы с готовыми решениями:

Пакетное переименование файлов
Возникла необходимость папку с большим кол-вом файлом переименовать 1,2,3,4,5..... Например фильмы или музыку или фото что бы шло по...

Пакетное переименование файлов
Уважаемые форумчане, подскажите пожалуйста решение. Имеется множество файлов следующего вида: jsdsjlk_a.txt mfmsgslsfs_a.txt ...

Пакетное переименование файлов
Есть файлы ___ нужно скрипт групового переименования файлов где меняеться местами только формат даты на год месяц день на вот это ...

19
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
15.02.2019, 15:12
Цитата Сообщение от zhilinskas Посмотреть сообщение
Как это можно сделать, чтобы происходило распознавание по имени файла, их сопоставление с директориями, перемещение этого файла в конечную папку D:\086617042_02165_\05022019\1
Сопоставить "42-2165.pdf" и "D:\086617042_02165_" - очень просто, а вот дальше, по какому признаку копировать "42-2165.pdf" именно в подкаталог "\05022019\1"?

Ещё раз:

1. В каталоге скважины "D:\086617042_02165_" есть подкаталоги с другими датами? И если да, тогда как их сопоставлять с pdf файлом?
2. В подкаталоге даты "05022019", pdf файл всегда копировать в "\1"?
1
0 / 0 / 0
Регистрация: 14.02.2019
Сообщений: 32
16.02.2019, 08:41  [ТС]
В каталоге скважины "D:\086617042_02165_" есть только одна дата " - "05022019", и также по другим скважинам..у каждой скважины только одна дата (между собой даты различны). ДА, верно, pdf файлы всегда копировать в конечный подкатолог "\1"
0
0 / 0 / 0
Регистрация: 14.02.2019
Сообщений: 32
16.02.2019, 09:19  [ТС]
Также есть список в виде таблице с директориями, пример во вложении
Миниатюры
Пакетное перемещение файлов  
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
16.02.2019, 17:02
Лучший ответ Сообщение было отмечено zhilinskas как решение

Решение

Цитата Сообщение от zhilinskas Посмотреть сообщение
В каталоге скважины "D:\086617042_02165_" есть только одна дата " - "05022019", и также по другим скважинам..у каждой скважины только одна дата (между собой даты различны). ДА, верно, pdf файлы всегда копировать в конечный подкатолог "\1"
PowerShell 3.0 и выше. Запустить powershell_ISE, создать новый сценарий, вставить туда скрипт, задать нужные пути (вместо C:\Temp\PDF и C:\Temp\Скважины), нажать ctrl+A и затем F8

Если на экране будет то, что ожидалось - убрать из скрипта ключ -WhatIf и запустить повторно.

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$pdf_folder  = 'C:\Temp\PDF'      # каталог с pdf-отчетами 
$hole_folder = 'C:\Temp\Скважины' # каталог с папками скважин
 
cls
foreach ($file in Get-ChildItem -LiteralPath $pdf_folder -Include *.pdf -File)
{
    $pattern = "\\\d+$($file.BaseName -replace '-','_0')_\\\d{8}\\1$"
 
    if (($dst = Get-ChildItem -LiteralPath $hole_folder -Directory -Recurse | ? FullName -Match $pattern).Count -gt 1)
    {
        Write-Host "Файл $file не скопирован, т.к. найдено соответствие нескольким каталогам скважин:" -f Yellow
        ($dst).FullName
        Continue
    }
    elseif ($dst.Count -eq 0)
    {
        Write-Host "Файл $file не скопирован, т.к. не найдено соответствие каталогам скважин!" -f Yellow
        Continue
    }
    
    Move-Item -LiteralPath $file.FullName -Destination ($dst.FullName + '\otchet.pdf') -Verbose -WhatIf
}
1
0 / 0 / 0
Регистрация: 14.02.2019
Сообщений: 32
19.02.2019, 18:15  [ТС]
...ошибки скрипт не выдает, НО почему то файлы в конечной папке не появляются (пробывал и с ключем "-WhatIf" и без него)....с чем это может быть связано?((
скрин во вложении
Миниатюры
Пакетное перемещение файлов  
0
0 / 0 / 0
Регистрация: 14.02.2019
Сообщений: 32
19.02.2019, 18:51  [ТС]
...ошибки скрипт не выдает, НО почему то файлы в конечной папке не появляются (пробывал и с ключем "-WhatIf" и без него)....с чем это может быть связано?((
скрин во вложении

Добавлено через 7 минут
ВСЕ!!! ЗАРАБОТАЛО!! СПАСИБО ВАМ ОГРОМНОЕ!!! ВЫ Замечательный человек!!!!!

Добавлено через 15 секунд
ВСЕ!!! ЗАРАБОТАЛО!! СПАСИБО ВАМ ОГРОМНОЕ!!! ВЫ Замечательный человек!!!!!

Добавлено через 13 минут
Подскажите пожалуйста еще маленький нюанс....если у номера куста или скажины есть в названии буквы, например 225б-1889а, ( а директория для этой скважины выглядит так : 999999225Б1889А) то в таком случае соответствие не происходит....как сделать так чтоб она не брала в учет буквы Кирилицы?
СПАСИБО ЗАРАНЕЕ!

Добавлено через 14 минут
$pattern = "\\\d+$($file.BaseName -replace '-','_0')_\\\d{8}\\1$"
я так понимаю что эта команда убирает из названия папок и файлов символы"-" и "_0"
но если у куста в номере есть буква, например Б, то в директории эта буква заменит нижнее подчеркивание в середине названия директории 999999225Б01889_...и получается что именно для соответствия этой скважины не подходит вычет "_0", а нужно убрать только "0"...как то можно это поправить?
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
19.02.2019, 19:03
Цитата Сообщение от zhilinskas Посмотреть сообщение
Подскажите пожалуйста еще маленький нюанс....если у номера куста или скажины есть в названии буквы, например 225б-1889а, ( а директория для этой скважины выглядит так : 999999225Б1889А)
Это не маленький нюанс, а абсолютно новое условие...

PowerShell
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
$pdf_folder  = 'C:\Temp\PDF'      # каталог с pdf-отчетами 
$hole_folder = 'C:\Temp\Скважины' # каталог с папками скважин
 
cls
foreach ($file in Get-ChildItem -LiteralPath $pdf_folder -Include *.pdf -File)
{
    
    if ($file.BaseName -match '[а-яё]')
    {
        $pattern = "\\\d+$($file.BaseName -replace '-')\\\d{8}\\1$"
    }
    else
    {
        $pattern = "\\\d+$($file.BaseName -replace '-','_0')_\\\d{8}\\1$"
    }
 
    if (($dst = Get-ChildItem -LiteralPath $hole_folder -Directory -Recurse | ? FullName -Match $pattern).Count -gt 1)
    {
        Write-Host "Файл $file не скопирован, т.к. найдено соответствие нескольким каталогам скважин:" -f Yellow
        ($dst).FullName
        Continue
    }
    elseif ($dst.Count -eq 0)
    {
        Write-Host "Файл $file не скопирован, т.к. не найдено соответствие каталогам скважин!" -f Yellow
        Continue
    }
    
    Move-Item -LiteralPath $file.FullName -Destination ($dst.FullName + '\otchet.pdf') -Verbose -WhatIf
}
Добавлено через 4 минуты
Цитата Сообщение от zhilinskas Посмотреть сообщение
я так понимаю что эта команда убирает из названия папок и файлов символы"-" и "_0"
Нет, не правильно - символ "-" заменяется на "_0". Здесь формируется паттерн для регулярного выражения, с помощью которого, в дальнейшем проверяется имя папки.
0
0 / 0 / 0
Регистрация: 14.02.2019
Сообщений: 32
19.02.2019, 19:09  [ТС]
еще очень часто номер скважины в названии файла состоит не из четырех символов, а из трех.. например 11-220, и директория выглядит так: 777777011_00220_ т.е. после нижнего подчеркивания уже два нуля, что тоже не совсем подходит ((
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
19.02.2019, 19:22
Лучший ответ Сообщение было отмечено zhilinskas как решение

Решение

Цитата Сообщение от zhilinskas Посмотреть сообщение
еще очень часто номер скважины в названии файла состоит не из четырех символов, а из трех.. например 11-220, и директория выглядит так: 777777011_00220_ т.е. после нижнего подчеркивания уже два нуля
Предлагаете об этом догадаться? А потом окажется, ещё 3, 4 .. 10 условия? Крайне желательно сначала продумать все требования, а потом уже составлять ТЗ...

Кликните здесь для просмотра всего текста
PowerShell
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
$pdf_folder  = 'C:\Temp\PDF'      # каталог с pdf-отчетами 
$hole_folder = 'C:\Temp\Скважины' # каталог с папками скважин
 
cls
foreach ($file in Get-ChildItem -LiteralPath $pdf_folder -Include *.pdf -File)
{
    
    if ($file.BaseName -match '[а-яё]')
    {
        $pattern = "\\\d+$($file.BaseName -replace '-')\\\d{8}\\1$"
    }
    else
    {
        $pattern = "\\\d+$($file.BaseName -replace '-','_0+')_\\\d{8}\\1$"
    }
 
    if (($dst = Get-ChildItem -LiteralPath $hole_folder -Directory -Recurse | ? FullName -Match $pattern).Count -gt 1)
    {
        Write-Host "Файл $file не скопирован, т.к. найдено соответствие нескольким каталогам скважин:" -f Yellow
        ($dst).FullName
        Continue
    }
    elseif ($dst.Count -eq 0)
    {
        Write-Host "Файл $file не скопирован, т.к. не найдено соответствие каталогам скважин!" -f Yellow
        Continue
    }
    
    Move-Item -LiteralPath $file.FullName -Destination ($dst.FullName + '\otchet.pdf') -Verbose -WhatIf
}
1
0 / 0 / 0
Регистрация: 14.02.2019
Сообщений: 32
19.02.2019, 19:50  [ТС]
БЛАГОДАРЕН ВАМ!!!! И хочу Вас отблагодарить! если хотите, могу баланс телефона пополнить)

Добавлено через 22 секунды
ВЫ МНЕ ОЧЕНЬ ПОМОГЛИ!

Добавлено через 13 минут
не хочет почему то с буквой в номере куста сопоставить файлы и папку....пробывал файл 15а-310.pdf поместить в директорию 777777015А00310_ ..

Добавлено через 6 минут
в названиях файлов могут быть следующие варианты
1-10.pdf (******001_00010_)
11-10.pdf (******011_00010_)
11а-10.pdf (******11А00010_)
11а-10Б.pdf (******11А00010Б) - буква в конце номера скважины "Б" заменяет конечное нижнее подчеркивание в директории
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
19.02.2019, 19:57
Цитата Сообщение от zhilinskas Посмотреть сообщение
не хочет почему то с буквой в номере куста сопоставить файлы и папку....пробывал файл 15а-310.pdf поместить в директорию 777777015А00310_
Естественно, т.к. это ещё одно условие.

Вы писали, что есть пары файл/каталог:
"225б-1889а" -> "999999225Б1889А", т.е.
[число][буква кириллицы][-][число][буква кириллицы] -> [число][буква кириллицы][число][буква кириллицы]

А теперь появилось ещё одно условие:

"15а-310" -> "777777015А00310_", т.е.

[число][буква кириллицы]-[число] -> [число][буква кириллицы][00][число][_]
1
0 / 0 / 0
Регистрация: 14.02.2019
Сообщений: 32
19.02.2019, 20:09  [ТС]
Можете поправить скрипт пожалуйста с такими условиями?...пожалуйста, без Вашей помощи мне не справиться(

Добавлено через 7 минут
Извините, что мучаю Вас своими проблемами

Добавлено через 10 секунд
Извините, что мучаю Вас своими проблемами
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
19.02.2019, 20:20
Лучший ответ Сообщение было отмечено zhilinskas как решение

Решение

Цитата Сообщение от zhilinskas Посмотреть сообщение
в названиях файлов могут быть следующие варианты
1-10.pdf (******001_00010_)
11-10.pdf (******011_00010_)
11а-10.pdf (******11А00010_)
11а-10Б.pdf (******11А00010Б) - буква в конце номера скважины "Б" заменяет конечное нижнее подчеркивание в директории
Попробуйте так, но точно уже не уверен...

Кликните здесь для просмотра всего текста
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$pdf_folder  = 'C:\Temp\PDF'      # каталог с pdf-отчетами 
$hole_folder = 'C:\Temp\Скважины' # каталог с папками скважин
 
cls
foreach ($file in Get-ChildItem -LiteralPath $pdf_folder -Include *.pdf -File)
{
        $pattern = "\\\d+$($file.BaseName -replace '-','_?0*')_?\\\d{8}\\1$"
 
    if (($dst = Get-ChildItem -LiteralPath $hole_folder -Directory -Recurse | ? FullName -Match $pattern).Count -gt 1)
    {
        Write-Host "Файл $file не скопирован, т.к. найдено соответствие нескольким каталогам скважин:" -f Yellow
        ($dst).FullName
        Continue
    }
    elseif ($dst.Count -eq 0)
    {
        Write-Host "Файл $file не скопирован, т.к. не найдено соответствие каталогам скважин!" -f Yellow
        Continue
    }
    
    Move-Item -LiteralPath $file.FullName -Destination ($dst.FullName + '\otchet.pdf') -Verbose -WhatIf
}
1
0 / 0 / 0
Регистрация: 14.02.2019
Сообщений: 32
20.02.2019, 08:40  [ТС]
Спасибо Вам огромное!
Все корректно сопоставляется!
Если есть возможность, добавьте пожалуйста еще одно (ПОСЛЕДНЕЕ) условие:
в наименовании директории (редко но бывает) подобное:
777888111_00111_
777888111_00111_2_
777888111_00111_

В наименовании файла эти индексы ("2_", "2Г", "3Г") не указаны, т.е. скважина что в данном примере имеет название 111-111.pdf, а директория может заканчиваться с индексом.
Как сделать так, чтобы эти индексы в наименовании директорий не учитывались при сопоставлении?
Благодарю Вас, Уважаемые программисты!!!
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
20.02.2019, 11:11
Цитата Сообщение от zhilinskas Посмотреть сообщение
в наименовании директории (редко но бывает) подобное:
777888111_00111_2Г
777888111_00111_2_
777888111_00111_3Г
В наименовании файла эти индексы ("2_", "2Г", "3Г") не указаны, т.е. скважина что в данном примере имеет название 111-111.pdf, а директория может заканчиваться с индексом.
Попробуйте такой вариант, но в нём я уверен ещё меньше. Если что-то постоянно доделывать, то высока вероятность, вместо желаемого результата получить детище Франкенштейна.

Кликните здесь для просмотра всего текста
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$pdf_folder  = 'C:\Temp\PDF'      # каталог с pdf-отчетами 
$hole_folder = 'C:\Temp\Скважины' # каталог с папками скважин
 
cls
foreach ($file in Get-ChildItem -LiteralPath $pdf_folder -Include *.pdf -File)
{
        $pattern = "\\\d+$($file.BaseName -replace '-','_?0*')_?[^\\]*\\\d{8}\\1$"
 
    if (($dst = Get-ChildItem -LiteralPath $hole_folder -Directory -Recurse | ? FullName -Match $pattern).Count -gt 1)
    {
        Write-Host "Файл $file не скопирован, т.к. найдено соответствие нескольким каталогам скважин:" -f Yellow
        ($dst).FullName
        Continue
    }
    elseif ($dst.Count -eq 0)
    {
        Write-Host "Файл $file не скопирован, т.к. не найдено соответствие каталогам скважин!" -f Yellow
        Continue
    }
    
    Move-Item -LiteralPath $file.FullName -Destination ($dst.FullName + '\otchet.pdf') -Verbose -WhatIf
}
1
0 / 0 / 0
Регистрация: 14.02.2019
Сообщений: 32
20.02.2019, 11:47  [ТС]
ВСЁ РАБОТАЕТ!!!
НИЗКИЙ ВАМ ПОКЛОН, УВАЖАЕМЫЙ!!!!
0
0 / 0 / 0
Регистрация: 14.02.2019
Сообщений: 32
15.03.2019, 08:24  [ТС]
Друзья, а как добавить условие в код что ниже, чтобы из названия файла *.pdf , до начала сопоставления с директорией убирались буквы и оставались только цифры ...например, если отчет называется 14-123н.pdf чтобы букву "н" она не учитывала при сопоставлении

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$pdf_folder  = 'C:\Temp\PDF'      # каталог с pdf-отчетами 
$hole_folder = 'C:\Temp\Скважины' # каталог с папками скважин
 
cls
foreach ($file in Get-ChildItem -LiteralPath $pdf_folder -Include *.pdf -File)
{
        $pattern = "\\\d+$($file.BaseName -replace '-','_?0*')_?[^\\]*\\\d{8}\\1$"
 
    if (($dst = Get-ChildItem -LiteralPath $hole_folder -Directory -Recurse | ? FullName -Match $pattern).Count -gt 1)
    {
        Write-Host "Файл $file не скопирован, т.к. найдено соответствие нескольким каталогам скважин:" -f Yellow
        ($dst).FullName
        Continue
    }
    elseif ($dst.Count -eq 0)
    {
        Write-Host "Файл $file не скопирован, т.к. не найдено соответствие каталогам скважин!" -f Yellow
        Continue
    }
    
    Move-Item -LiteralPath $file.FullName -Destination ($dst.FullName + '\otchet.pdf') -Verbose 
}
0
0 / 0 / 0
Регистрация: 14.02.2019
Сообщений: 32
15.03.2019, 15:44  [ТС]
Цитата Сообщение от KDE777 Посмотреть сообщение
Попробуйте такой вариант, но в нём я уверен ещё меньше. Если что-то постоянно доделывать, то высока вероятность, вместо желаемого результата получить детище Франкенштейна.
Помогите пожалуйста...если Вам не сложно..

Добавлено через 35 секунд
на Сообщение № 18
0
0 / 0 / 0
Регистрация: 14.02.2019
Сообщений: 32
19.03.2019, 11:14  [ТС]
Уважаемые программисты!
Будьте добры...посодействуйте в решении вопроса..для вас грамотных людей это мелкая задачка..прошу пожалуйста помогите..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.03.2019, 11:14
Помогаю со студенческими работами здесь

Пакетное переименования файлов по маске
Такого рода вопросы уже естественно были, однако я в них не нашел ответа. Вот моя проблема: в папке имеется N количество субтитров,...

Пакетное переименование файлов в каталоге
В папке есть некое количество файлов с расширением .jpg Надо с помощью батника переименовать эти файлы в вид 1.jpg, 2.jpg, 3.jpg и т.д.

Пакетное переименование файлов по маске
Всем привет. Нужна помощь. Задача: В папке есть файлы вида ААА(3_3_x).txt, где ААА - произвольный текст различной длины; x-некое число...

Пакетное объединение pdf файлов с условиями
Здравствуйте! Есть задача сканировать подписанные договоры в pdf и загружать в систему документооборота. Чтобы ускорить работу я...

Пакетное переименование файлов по заданному шаблону
Нужен bat файл, который переименнует все файлы по указанному пути, вот так: name401 name402 ... name410 name411 ... ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru