Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Windows [игнор отключен] [закрыт для гостей] / CMD/BAT: / 25 сообщений из 37, страница 1 из 2
07.12.2020, 11:59
    #40025174
Квейд
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CMD/BAT:
Делаю скрипт автоматической компиляци ресурсных файлов.

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
set delphipath=%sourceroot%setup\delphiXE7\
set brcc=%delphipath%bin\win32\brcc32
set "errors=0"

if "!project!"=="" (exit /b 0)

if not "!param!"=="/silent" (
  powershell write-host -fore White Compiling resource %project%
)

for /f "delims=" %%A in ('%brcc% %project%') do (
  set OutputLine=%%~A
  if not "!OutputLine:~0,7%!"=="Borland" (
    if not "!OutputLine:~0,9%!"=="Copyright" (
      echo "!OutputLine!" | findstr /I "fatal">nul
      if !errorlevel!==0 (set errors=1)
      echo "!OutputLine!" | findstr /I "error">nul
      if !errorlevel!==0 (set errors=1)
      echo "!OutputLine!" 
    )
  ) 
)

У меня проблема с циклом FOR. Все хорошо. Но если путь в %brcc% содежит пробел, то получаем сообщение

"D:\XXX\YYY" is not recognized as an internal or external command, operable program or batch file.


D:\XXX\YYY "обрезан" как раз по пробелу. Что можно сделать?
...
Рейтинг: 0 / 0
07.12.2020, 12:12
    #40025177
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CMD/BAT:
Код: sql
1.
for /f "delims=" %%A in ('"%brcc%" %project%') do
...
Рейтинг: 0 / 0
07.12.2020, 12:19
    #40025178
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CMD/BAT:
Квейд,

Перепиши на питоне и не мучайся.
...
Рейтинг: 0 / 0
07.12.2020, 12:33
    #40025182
Квейд
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CMD/BAT:
Akina
Код: sql
1.
for /f "delims=" %%A in ('"%brcc%" %project%') do

%project% тоже можно в кавычки обрамить, он ведь может содержать пробелы в пути?
...
Рейтинг: 0 / 0
07.12.2020, 12:34
    #40025184
Квейд
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CMD/BAT:
crutchmaster
Квейд,

Перепиши на питоне и не мучайся.


у пользователя может не быть питона на машине
...
Рейтинг: 0 / 0
07.12.2020, 12:44
    #40025189
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CMD/BAT:
Квейд
Код: powershell
1.
powershell write-host -fore White Compiling resource %project%


Это же жесть. Писать весь скрипт на BAT, а повершелл использовать внутри для echo
...
Рейтинг: 0 / 0
07.12.2020, 13:16
    #40025214
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CMD/BAT:
Квейд
у пользователя может не быть питона на машине

Запихать stand-alone пистон в дистрибутив сорцов. Тоже мне проблема.
...
Рейтинг: 0 / 0
07.12.2020, 14:33
    #40025254
Квейд
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CMD/BAT:
crutchmaster
Квейд
у пользователя может не быть питона на машине

Запихать stand-alone пистон в дистрибутив сорцов. Тоже мне проблема.
Спасибо за добрые советы. Но вопрос был про СMD/BAT, а не про питон.
...
Рейтинг: 0 / 0
07.12.2020, 14:34
    #40025255
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CMD/BAT:
fkthat
Это же жесть. Писать весь скрипт на BAT,
Какой-то ненастоящий дельфист попался, уж писать так прямо и на дельфи, раз уж в итоге дельфи и подзывается.
...
Рейтинг: 0 / 0
07.12.2020, 14:41
    #40025261
Квейд
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CMD/BAT:
Вот такой вызов

Код: powershell
1.
for /f "delims=" %%A in ('"%brcc%" "%project%"') do 


разворачивается в
D:\XXX\YYY 2.0>for /F "delims=" %A in ('"D:\XXX\YYY 2.0\setup\delphiXE7\bin\win32\brcc32" "D:\XXX\YYY 2.0\App\versioninfo.rc"'
и приводит к сообщению
'D:\XXX\YYY 2.0' is not recognized as an internal or external command, operable program or batch file.


Если убрать кавычки возле project, вот так
Код: powershell
1.
for /f "delims=" %%A in ('"%brcc%" %project%') do



тогда brcc запускается, но не находит файл, путь к которому содержит пробел:
"Error Could not open input file D:\XXX\YYY"
...
Рейтинг: 0 / 0
07.12.2020, 14:42
    #40025263
Квейд
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CMD/BAT:
Ivan_Pisarevsky
fkthat
Это же жесть. Писать весь скрипт на BAT,
Какой-то ненастоящий дельфист попался, уж писать так прямо и на дельфи, раз уж в итоге дельфи и подзывается.
Можете, пожалуйста, обсуждать сабж, а не мою личность? Благодарю.
...
Рейтинг: 0 / 0
07.12.2020, 15:37
    #40025296
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CMD/BAT:
Квейд
Можете, пожалуйста, обсуждать сабж,

Можем.
Код: powershell
1.
2.
3.
4.
5.
$brcc = "bla\bla\bla"
$project = "HelloWorld"

& $brcc $Project | sls -not 'borland|copyright' | sls 'fatal|error' |
    measure -l | select -exp Lines


Не то же самое?
...
Рейтинг: 0 / 0
07.12.2020, 15:51
    #40025306
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CMD/BAT:
КвейдВот такой вызов

Так кавычки надо ставить при вызове внутри do.

Ну и через makefile это было бы гораздо эффективнее.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
07.12.2020, 22:37
    #40025434
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CMD/BAT:
Квейд,

Если просто в строке написать (без for): "%brcc%" "%project%" - оно выполняется?
...
Рейтинг: 0 / 0
08.12.2020, 06:37
    #40025463
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CMD/BAT:
Квейд
Но вопрос был про СMD/BAT

Ну тогда я могу просто сказать, что ты занимаешься хернёй. Такое даже на bash'е руками не пишут, хотя bash по сравнению с cmd - это как самолёт по сравнению с 3-х колёсным великом.
...
Рейтинг: 0 / 0
08.12.2020, 14:12
    #40025589
volodin661
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CMD/BAT:
Квейд

у пользователя может не быть питона на машине


То есть, целевой аудиторией являются некие пользователи Виндус,
этим пользователям позарез нужна автоматическая компиляция ресурсных файлов
и у каждого пользователя установлено ( купленное за нехилые деньги) DELPHI XE7.
...
Рейтинг: 0 / 0
08.12.2020, 14:31
    #40025599
volodin661
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CMD/BAT:
Инструментом для сборки проекта Delphi раньше ( в прошлом веке ) являлся make, сейчас msbuild.
...
Рейтинг: 0 / 0
08.12.2020, 14:57
    #40025614
Квейд
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CMD/BAT:
volodin661
Квейд

у пользователя может не быть питона на машине


То есть, целевой аудиторией являются некие пользователи Виндус,
этим пользователям позарез нужна автоматическая компиляция ресурсных файлов
и у каждого пользователя установлено ( купленное за нехилые деньги) DELPHI XE7.


Мне нужна помощь по конкретному вопросу, который указан в стартовом посте.
Давайте абстрагируемся от того, что у кого куплено или что у кого установлено?

Есть вопрос,

Код: powershell
1.
for /f "delims=" %%A in ('%brcc% %project%') do (



что можно подправить в данном коде, если %brcc% и/или %project% содержат пробелы?
Если можно что-то с этим кодом сделать, подскажите. Если с этим кодом ничего нельзя сделать в принципе - так и напишите.
Рассуждения, должен или не должен там у кого-то быть питон - пожалуйста, оставьте при себе.
...
Рейтинг: 0 / 0
08.12.2020, 15:13
    #40025626
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CMD/BAT:
Квейдчто можно подправить в данном коде, если %brcc% и/или %project% содержат пробелы?

Повторяю медленно: в данном коде - ничего. Подправлять надо в следующих после него
строчках. Включи уже echo и смотри какие реально команды пытаются исполняться.

У тебя проблема в отсутствии базовых навыков работы с командной строкой.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
08.12.2020, 16:46
    #40025675
volodin661
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CMD/BAT:
Дорогой друг, сейчас 2021-й год. уже почти.

Развитие cmd прекратилось в прошлом веке ( последнее изменение в 1998 году, что-то связанное с unicode )
С 2009-го года основным средством автоматизации является powershell, который был включен в состав Windows 7.

cmd.exe имеет размер аж 400K ( для сравнения: rexx от OS/2 имеет размер 40К), при этом не умеет почти ничего и даже это ничего требует идиотских конструкций типа setlocal enabledelayedexpansion каких-то двойных процентов и восклицательных знаков, перемежающихся с одинарными при обращении к переменным.

powershell умеет абсолютно всё.
Но сборка проекта - это msbuild или make. Из соображений целесообразности.

Taк почему же ты настаиваешь на том, чтобы тебе кто-то помогал в твоих геронтофилических пристрастиях ? сам-то ты в этом г... почему-то разбираться не хочешь.
...
Рейтинг: 0 / 0
08.12.2020, 17:10
    #40025688
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CMD/BAT:
volodin661powershell умеет абсолютно всё.

Вот бы ещё он не тянул за собой NET фреймворк и загружался быстрее, чем за минуту... И это
я ещё не буду вспоминать о его синтаксисе как у брейнфака.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
08.12.2020, 19:24
    #40025755
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CMD/BAT:
Dimitry Sibiryakov
Вот бы ещё он не тянул за собой NET фреймворк

Так он во всех современных виндосах стоит из коробки ведь (разве что не самая новая версия).

Dimitry Sibiryakov
и загружался быстрее, чем за минуту.

Код: powershell
1.
2.
3.
> echo %time% & pwsh.exe -nop -c "date -f 'HH:mm:ss.ff'"
19:20:35.42
19:20:35.88


Как видишь, без профиля загрузился за 0.46 (сорок шесть сотых) секунды. Версия 7.1.0.
...
Рейтинг: 0 / 0
08.12.2020, 19:32
    #40025758
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CMD/BAT:
fkthatКак видишь, без профиля загрузился за 0.46 (сорок шесть сотых) секунды. Версия 7.1.0.

Вот почему разработчикам нельзя давать новейшие топовые компьютеры...
Код: sql
1.
2.
3.
C:\Users\SD>echo %time% & powershell.exe -nop -c "date -f 'HH:mm:ss.ff'"
17:30:50.74
17:31:45.00


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
08.12.2020, 19:45
    #40025760
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CMD/BAT:
Dimitry Sibiryakov
новейшие топовые компьютеры...

Да ничего топового - ноут начала 2018 года на Core i5.
...
Рейтинг: 0 / 0
09.12.2020, 05:14
    #40025844
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CMD/BAT:
Dimitry Sibiryakov,

При запуске во что упирается? Не в винт ли?
...
Рейтинг: 0 / 0
Форумы / Windows [игнор отключен] [закрыт для гостей] / CMD/BAT: / 25 сообщений из 37, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]