Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
2 / 2 / 0
Регистрация: 20.03.2017
Сообщений: 21

Вернуть путь из скрипта PowerShell в cmd

23.12.2023, 11:02. Показов 1566. Ответов 17

Студворк — интернет-сервис помощи студентам
Здравствуйте.

Стояла задача при выполнении батника выбора файла из рабочего каталога. Нашёл в интернете решение, и путь вроде возвращается в консоль, но путь обрывается на первом пробеле. Как это побороть?

test-ps-file.bat
Windows Batch file
1
2
3
@echo off
for /F "usebackq" %%a in (`powershell -executionpolicy bypass -file openfiledialog.ps1`) do if not "%%a" == "Cancel" if not "%%a" == "OK" set filename=%%a
echo %filename%
openfiledialog.ps1
PowerShell
1
2
3
4
5
6
7
[System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") | out-null
 
$OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog
$OpenFileDialog.initialDirectory = "C:\"
$OpenFileDialog.filter = "Книги Excel (*.xlsx)|*.xlsx|Все файлы (*.*)|*.*"
$OpenFileDialog.ShowDialog()
$OpenFileDialog.filename
Это упрощённый скрипт из интернета, я его доработал, чтобы он работал с ярлыка с панели задач TotalCommander прямо с активной рабочей папкой без принудительного копирования в папку. Я раньше использовал подобную конструкцию в скриптах PowerShell и внутри них всё хорошо работает, но передача пути в bat хромает.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.12.2023, 11:02
Ответы с готовыми решениями:

Запуск ps скрипта на PowerShell 7 через bat/cmd скрипт
Здравствуйте, профи)))) Не могу никак понять, как можно запустить ps1 скрипт, при помощи powershell 7 ( 5.2 очень долго скрипт...

Некорректная кодировка в переменных при запуске скрипта Powershell из CMD
Добрый день! Столкнулся с очень странной ситуацией. Получаю через curl данные с веб-сайта на русском языке. Если просто запустить в...

PowerShell и CMD
Доброго! Есть скрипт на PowerShell, который отбражает установленый софт, на удаленном ПКЖ: ...

17
bat-пропагандист
 Аватар для nekit270
981 / 183 / 76
Регистрация: 07.12.2022
Сообщений: 454
Записей в блоге: 12
23.12.2023, 12:51
Лучший ответ Сообщение было отмечено Ber Strider как решение

Решение

В цикле for используйте tokens=*, чтобы путь не обрезался:

Windows Batch file
1
2
3
@echo off
for /F "usebackq tokens=*" %%a in (`powershell -executionpolicy bypass -file openfiledialog.ps1`) do if not "%%a" == "Cancel" if not "%%a" == "OK" set filename=%%a
echo %filename%
1
 Аватар для volodin661
6625 / 2256 / 346
Регистрация: 10.12.2013
Сообщений: 7,803
23.12.2023, 19:23
первое ( и главное ):

если используется powershell, зачем нужен cmd.exe ?


второе ( из спортивного интереса ):

вернуть значение из powershell в cmd мне представляется удобным с помощью
формирования файла .BAT с результатом или даже с результатами на стороне powershell
и вызова его потом с помощью инструкции CALL на стороне cmd

вот так:

Windows Batch file
1
2
3
4
5
6
7
@ set myresults=results.bat
@ powershell -ep bypass -file openfiledialog.ps1
@ call %myresults%
 
@ echo %result1%
@ echo %result2%
@ echo %result3%


соответственно, в файл openfiledialog.ps1 следует добавить строчки генератора результата(ов) для текущ. сессии cmd:


PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
[System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") | out-null
 
$OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog
$OpenFileDialog.initialDirectory = "C:\"
$OpenFileDialog.filter = "Книги Excel (*.xlsx)|*.xlsx|Все файлы (*.*)|*.*"
$OpenFileDialog.ShowDialog()
 
$result1 = "@ SET RESULT1=$($OpenFileDialog.filename)"
$result2 = "@ SET RESULT2=Кошка с мышкой"
$result3 = "@ SET RESULT3=Бабка с дедкой"
 
$result1, $result2, $result3 | Out-File $env:MYRESULTS -Encoding UTF8
( самый сложный случай, когда результаты могут содержать строки в различных алфавитах ( русский, нем., англ. итд )
и, соответственно кодировка должна быть UTF-8 с BOM для файлов .PS1 и сгенерированного RESULTS.BAT )

чтобы вызвать с помощью CALL RESULTS.BAT в кодировке UTF8 с BOM, следует добавить перед вызовом строку CHCP 65001

вот так:
Windows Batch file
1
2
3
4
5
6
7
8
@ set myresults=results.bat
@ powershell -ep bypass -file openfiledialog.ps1
@ chcp 65001 > NUL
@ call %myresults%
 
@ echo %result1%
@ echo %result2%
@ echo %result3%
1
bat-пропагандист
 Аватар для nekit270
981 / 183 / 76
Регистрация: 07.12.2022
Сообщений: 454
Записей в блоге: 12
23.12.2023, 22:51
volodin661, создавать временные файлы в тех случаях, где можно обойтись и без них, не слишком хорошо
0
 Аватар для volodin661
6625 / 2256 / 346
Регистрация: 10.12.2013
Сообщений: 7,803
24.12.2023, 02:58
nekit270,
при работе ОС постоянные и временные файлы плодятся десяткaми тысяч в день,
а тут всего-то один и сразу стало не слишком хорошо ?

то, что действительно нехорошо, а именно - применение никуда не годного cmd.exe,
почему-то возражений не вызывает.
0
2 / 2 / 0
Регистрация: 20.03.2017
Сообщений: 21
24.12.2023, 12:13  [ТС]
Цитата Сообщение от volodin661 Посмотреть сообщение
то, что действительно нехорошо, а именно - применение никуда не годного cmd.exe,
почему-то возражений не вызывает.
Не понимаю, почему некуда не годного.

1. Мне необходимо было сделать скрипт, который автоматом объединял все PDF в одной активной папке Total Cоmmander: ярлык на BAT на панель задач TC это делал на раз - щёлк по нему и появляется папка "out", где лежит "out.pdf" со сформированными закладками.

2. Мне необходимо было реализовать нумерацию определённого файла в активной папке TC: снова ярлык на BAT, а вызов PS из BAT помогал выбрать файл в активной папке, а не копировать скрипт в папку выполнения и прописывать всё вручную.

И всё это надо распространить на все ПК организации и почти не требует обучения, чего не скажешь про PS скрипт. Его запуск на прямую почему то получается у людей не сразу, не запоминают "как", а BAT выполняется на раз, а с связке с TC даже копировать не надо.

Добавлено через 5 минут
Windows Batch file
1
2
3
@echo off
for /F "usebackq tokens=*" %%a in (`powershell -executionpolicy bypass -file openfiledialog.ps1`) do if not "%%a" == "Cancel" if not "%%a" == "OK" set filename=%%a
echo %filename%
В этой конструкции есть возможность создать несколько переменных на выходе? Пробовал "set filename=%%a &set mname=%%~nxa", но почему то не выходит.
0
 Аватар для volodin661
6625 / 2256 / 346
Регистрация: 10.12.2013
Сообщений: 7,803
24.12.2023, 12:55
Ber Strider,
1) механизм реализации ярлыков никак не связан с cmd.exe
2) ярлык можно подвязать к абсолютно любому исполняемому файлу и сам механизм привязки тоже не имеет никакого отношения к cmd.exe.
3) А для запуска powershell-скрипта пощёлкиванием мышки или мяуканьем кошки просто требуется добавить соответств.
запись в Registry.
4) Распространение по всем ПК - совсем неудачный пример сравнения возможностей cmd и powershell;
в powershell такая возможность заложена. в cmd - нет.
0
2 / 2 / 0
Регистрация: 20.03.2017
Сообщений: 21
24.12.2023, 13:32  [ТС]
Ваше право. Зачем спорить. Я ничем не стараюсь уменьшить достоинства powershell, он довольно мощный инструмент, но согласитесь, очень уж он требует дополнительных телодвижений, для полноценной работы на ПК пользователя, особенно если массовый пользователь далёк от этого (те же дополнительные записи в Registry).
0
 Аватар для volodin661
6625 / 2256 / 346
Регистрация: 10.12.2013
Сообщений: 7,803
24.12.2023, 14:23
Ber Strider,
powershell - инструмент автоматизации OS,
а автоматизация в свою очередь - это исключение пользователя из процесса производства,
в наилучшем случае это полное исключение.

Цитата Сообщение от Ber Strider Посмотреть сообщение
он довольно мощный инструмент, но согласитесь, очень уж он требует дополнительных телодвижений
и опять пальцем в небо;

повышение мощности инструмента ( то есть, работы в единицу времени ) - это уменьшение количества телодвижений.

Именно это определяет качество скриптового языка.
Хороший скриптовый язык отбрасывает из кода все незначительное, оставляя только его сущность - части, которые действительно что-то делают.

Дерьмовые скриптовые языки, безоговорочным лидером которых является интерпретатор cmd,
принуждают пользователя городить нелепые конструкции в качестве обходных вариантов для тех задач,
к которым данный язык не приспособлен. А cmd, как я уже говорил, не приспособлен практически ни к чему.
0
bat-пропагандист
 Аватар для nekit270
981 / 183 / 76
Регистрация: 07.12.2022
Сообщений: 454
Записей в блоге: 12
24.12.2023, 15:03
Ber Strider, пробуйте:

Windows Batch file
1
2
3
4
5
6
7
8
@echo off
for /F "usebackq tokens=*" %%a in (`powershell -executionpolicy bypass -file openfiledialog.ps1`) do (
    if not "%%a" == "Cancel" if not "%%a" == "OK" (
        set "filename=%%a"
        set "mname=%%~nxa"
    )
)
echo %filename%
volodin661, какой интерпретатор использовать - личное дело каждого. Кому-то cmd.exe не годен, кому-то годен. Смысл пытаться перевести на другой интерпретатор человека, задача которого спокойно реализуется с использованием cmd.exe?
1
6962 / 2857 / 1099
Регистрация: 06.06.2017
Сообщений: 9,694
24.12.2023, 18:53
Ber Strider, а зачем вам вообще понадобился этот диалог в рамках рабочего каталога Тотала? В активной панели список, который можно как угодно фильтровать и выбирать нужное. Диалог-то тут при чём?
0
2 / 2 / 0
Регистрация: 20.03.2017
Сообщений: 21
24.12.2023, 21:57  [ТС]
Цитата Сообщение от FlasherX Посмотреть сообщение
Ber Strider, а зачем вам вообще понадобился этот диалог в рамках рабочего каталога Тотала? В активной панели список, который можно как угодно фильтровать и выбирать нужное. Диалог-то тут при чём?
Для обработки параметров внешней программы:
Windows Batch file
1
cpdf -add-text %%Bates -bates 0 -font-size 11 -font "Arial" -topright "22 30" in.pdf 2-end -o out.pdf
Для того, чтобы пользователь не рылся в ПК, а можно было сразу в рабочем каталоге нажал на кнопку на панели задач TC и диалог выбора прямо в этой папке уже: выбрал файл, потом ввёл параметры страниц. Сам файл скрипта лежит где то в одном месте и не надо его копировать постоянно в рабочую папку.
Мы очень много сдаём в госэкспертизу, там всё в pdf, приходиться для удобства ваять такие скрипты.

Кстати, тот диалог выбора на powershell иногда глючит. Как то писал скрипт чисто на powershell, там скрипт отрабатывает в 9 случаях из 10, иногда зависает. Не знал, что делать и просто финальную запись со всеми параметрами записывал в отдельный скрипт powershell, и вот он уже выполняется без проблем.
0
6962 / 2857 / 1099
Регистрация: 06.06.2017
Сообщений: 9,694
24.12.2023, 22:56
Цитата Сообщение от Ber Strider Посмотреть сообщение
Для обработки параметров внешней программы:
Вы вообще в курсе, что для кнопки в TC есть параметры типа %N, %P%N, %V, %S? Ещё раз — зачем тут диалог?
Цитата Сообщение от Ber Strider Посмотреть сообщение
на панели задач TC
Не задач, а инструментов.
1
2 / 2 / 0
Регистрация: 20.03.2017
Сообщений: 21
25.12.2023, 09:52  [ТС]
Цитата Сообщение от FlasherX Посмотреть сообщение
Вы вообще в курсе, что для кнопки в TC есть параметры типа %N, %P%N, %V, %S? Ещё раз — зачем тут диалог?
Нет, не знал. Работал по аналогии "перетащи ярлык на панель инструментов и пользуйся". Параметрами TC я пользовался только один раз, когда писал скрипт сетевого окружения с созданием bat-ярлыков на ПК в сети (выручало при проблемах сети после обновления windows и при работе по vpn). И то не параметрами, как понимаю, а ключами.

upd. Прочитал справку, параметр %N действительно был бы полезен. И если писать скрипт чисто под TC, то можно сделать. Если делать более универсально, то надо как то обработать, что скрипт был вызван из TC и если нет, то появлялся диалог выбора.

upd2. Про "cmd+powershell" я понимаю, что поженил ежа с бегемотом, т.е. зачем это делать, если всё может сделать один бегемот, а то так ёж послал бегемота посмотреть дорогу, когда тот мог сам всё сделать. И если сделать cmd только под TC, то powershell вообще не нужен.

Спасибо всем за правильные советы.
0
6962 / 2857 / 1099
Регистрация: 06.06.2017
Сообщений: 9,694
25.12.2023, 23:17
Цитата Сообщение от Ber Strider Посмотреть сообщение
Кстати, тот диалог выбора на powershell иногда глючит.
Тогда используйте .hta без всяких консольных окон:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
<script language=vbscript>
   With self
      .resizeTo 0, 0: .moveTo (.screen.Width-781)/2, (.screen.Height-657)/2
   End With
   Sub Window_OnLoad
      F = d.object.openFileDlg(F,, "PDF Document (*.pdf)|*.pdf|All files (*.*)|*.*", "Сохранить как")
      If Len(F) Then CreateObject("WScript.Shell").Run "cpdf.exe ... -o """ & F & """", 0
      window.close
   End Sub
</script>
<hta:Application Caption=no />
<object id=d classid=clsid:3050f4e1-98b5-11cf-bb82-00aa00bdce0b width=0 height=0></object>
Цитата Сообщение от Ber Strider Посмотреть сообщение
Если делать более универсально, то надо как то обработать, что скрипт был вызван из TC и если нет, то появлялся диалог выбора.
Так "никто" не делает. Это то же скрещивание ежа с ужом. Если вы пользуетесь файлменеджером с поддержкой подобных параметров, то в нём нет смысла тратить ресурс на проверку и лишний отдельный код, если есть возможность сразу выполнять без оного. А если требуется передать кому-то, кто им не пользуется, то только таким данный код и пригодится.

Цитата Сообщение от Ber Strider Посмотреть сообщение
И если сделать cmd только под TC, то powershell вообще не нужен.
В случае параметра обе консоли лишние.
1
2 / 2 / 0
Регистрация: 20.03.2017
Сообщений: 21
27.12.2023, 10:51  [ТС]
Цитата Сообщение от FlasherX Посмотреть сообщение
В случае параметра обе консоли лишние.
Допустим, параметр %N передаст название файла, но ввод дополнительных параметров в виде с какой страницы начать нумеровать до какой, с какого номера начать, а ещё учесть, что стартовый номер всегда относится в первому листу pdf и тогда необходимо уже внутри вычислить стартовый параметр. Тут лучше уже консоль, хоть какой то диалог с пользователем.
0
6962 / 2857 / 1099
Регистрация: 06.06.2017
Сообщений: 9,694
27.12.2023, 11:06
Ber Strider, ну вы об этом только сейчас пишите. Это решается просто в рамках предложенного мной кода, и опять же без консоли.
0
 Аватар для volodin661
6625 / 2256 / 346
Регистрация: 10.12.2013
Сообщений: 7,803
03.06.2024, 15:14
Цитата Сообщение от Ber Strider Посмотреть сообщение
Вернуть путь из скрипта PowerShell в cmd
Цитата Сообщение от volodin661 Посмотреть сообщение
вернуть значение из powershell в cmd мне представляется удобным с помощью
(А) формирования файла .BAT с результатом или даже с результатами на стороне powershell
и вызова его потом с помощью инструкции CALL на стороне cmd
(Б) возникла ещё мысль возвращать переменные в вызывающий процесс через Environment ( переменные окружения )
( идея-то возникла давным-давно, но не доходили руки, потому что не было социального запроса )

В чистом виде идея нереализуема, потому что папа( вызывающий процесс ) ничего не знает о жизни сына,
он просто отдает в сыновний процесс своё окружение и полностью устраняется от его дальнейшей судьбы.
После смерти сына безутешному отцу передаётся жалкая весточка о его последних часах в виде скупого системного числа exitcode, который почему-то называется в cmd errorlevel. И в лучшем случае это 0 (ноль), ноль - это успех ( вот так цинично ), а всё остальное считается сыновней ошибкой.

Возвращаюсь к грязной идее.
'Грязная идея' такова: перейти от схемы 'Иван Грозный убивает своего сына' к обратной - 'Сын убивает папу Ваню'. Что это даёт? Это ничего бы не дало, но перед тем как убить папу, сын создаёт нового старого папу, после чего убивает старого старого папу, но при этом погибает и сам. Таковы условия игры, ничего не поделать.

Так что это даёт ? А даёт вот что: при рождении нового папы к нему переходит всё Окружение сына, в котором уже зашито Окружение старого старого папы плюс всё то, что сын успел натворить за свою коротенькую жизнь.
Реинкарнация по сути.
Красота же!

Соответственно задумке код выглядит так:

IVAN.GROZNY.BAT

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
@@ SET X = 123.45        
@@ SET Y = 99.87
@@ CALL POWERSHELL -EP BYPASS -F JAIME.LANNISTER.PS1 %~F0 "%*"
 
@@@  ECHO Z 
@@@  ECHO ALPHA
@@@  ECHO BETA
@@@  ECHO GAMMA
 
@@@  ECHO MENU1
@@@  ECHO MENU2
@@@  ECHO MENU3
JAIME.LANNISTER.PS1 ( цареубийца )

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
param ( $PARENT_BATNIK, $PARENT_ARGS )
### START USER CODE
$ENV:Z = вычисление Z, используя папины ENV:X и ENV:Y
$ENV:ALPHA = "Something1"
$ENV:BETA = "Something2"
$ENV:GAMMA = "Something3"
 
SETX MENU1 "Графиня с изменившимся лицом"  # перманентное сохранение в Реестр 
SETX MENU2 "Бежит" # перманентное сохранение в Реестр 
SETX MENU3 "К пруду" # перманентное сохранение в Реестр 
### END USER CODE
 
$PARENT_TAIL =  оставить только те строки в IVAN.GROZNY.BAT, где три собаки @@@; то есть, хвост оставить, остальное отрезать. 
 
START-PROCESS -NoNewWindow  "CMD.EXE /K $PARENT_TAIL $PARENT_ARGS"  # рождение нового старого отца
$PARENT_PID = getparentpid
STOP-PROCESS $PARENT_PID  # убийство старого старого отца  и как следствие собственная смерть
Из всего вышенаписанного наибольшую ценность представляют строки с CMD-утилитой SETX,
про которую известно, что она перманентно устанавливает переменные в РЕЕСТРЕ.
РЕЕСТР для Windows это системная база данных ( сист. конфиг. файл )
Всё бы здорово, но беда тут в том, что эти переменные никто не увидит в текущей сессии.
Увидеть их можно, только в новой сессии.
И именно это и было реализовано - новый старый папа увидит и эти изменения РЕЕСТРА, и всё окружение умершего сына !

Итак, в файле IVAN.GROZNY.BAT:
строки 1,2 - установка своих переменных
строка 3 - вызов сыновнего процесса, который унаследует всё окружение но убьёт отца и себя
строки 5-12 - реинкарнация; возобновление исполнения, но уже с новым окружением ( своё старое плюс сыновнее )

Внешне все эти игры престолов будут выглядеть вполне культурно, поскольку новое консольное окно не создаётся ( см. опцию NoNewWindow), ничего не будет заметно.
============================
Все пчёлы прилетали с мёдом, а одна маленькая, вредная - с дёгтем:

с практической точки зрения всё вышенаписанное можно смело не использовать, а просто пользоваться powershell вместо cmd - от начала и до конца.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.06.2024, 15:14
Помогаю со студенческими работами здесь

Как при помощи командной строки узнать путь до файла, и в какой переменной cmd этот путь содержится?
наприме у меня Far.exe находится в папке D:\Programs\Far ну и в бате я прописываю соответственно start путь\файл а у кого то этот...

CMD to Powershell строкой
Уважаемые знатоки, подскажите, пожалуйста! Имеется скрипт PS1, внутри которого описывается функция и следом за ней команда. Можно ли...

Windows PowerShell+CMD
Всем привет народ,обращаюсь к вам ..поскольку сам не шарю и в нете ничего не нарыл.. Постоянно запускается процесс в ДЗ - Windows...

Настройки CMD / PowerShell
Доброго времени суток. Подскажите как получить настройки окон CMD и PowerShell в реестре что-бы сделать backup и перекинуть на др OS

В чем отличие powershell от cmd?
Добрый день, насколько я понял утилиты там и тут можно такие же запускать. Тогда в чем отличие?


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru