cartmenezz
  - Стаж: 9 лет 7 месяцев
- Сообщений: 527
- Репутация:14[+] [-]
- Откуда: Калининград
|
 столкнулся с задачей: есть папка, в ней несколько файлов с определенным расширением (но могут быть и другие, например текстовый с описанием). нужно выполнить команду с этими файлами, но не по отдельности а сразу со всеми, т.е это должно выглядеть так:команда file1.ext file2.ext file3.ext ... у меня получилось примерно вот это:cd /d "folder" SetLocal EnableDelayedExpansion set stroka=& for %%A in (*.ext) do set "stroka=!stroka! %%~A" set "stroka=%stroka:~1%" %comanda% %stroka% EndLocal но ввиду моего малого опыта в подобных делах, меня не покидают подозрения, что это можно решить как-то проще или правильнее, возможно без EnableDelayedExpansion...
|
Ander_73
  - Стаж: 8 лет 2 месяца
- Сообщений: 3983
- Репутация:127[+] [-]
|
cartmenezz, это правильное решение. Но можно и без EDE:for %%a in (*.ext) do call set "stroka=%%stroka%% %%~a"
|
 Отправлено: 08-Май-2021 19:08
(спустя 1 час 42 минуты)
Ander_73
  - Стаж: 8 лет 2 месяца
- Сообщений: 3983
- Репутация:127[+] [-]
|
85360а задвоенные знаки процента вокруг переменной stroka это следствие использования call Это чтобы произошло "раскрытие" переменной внутри неявного вызова процедуры (call). Лучше почитать на форумах, я не смогу объяснить толком. Внутри call можно писать и обычные %. Стандартный пример (удалить из строки %var% подстроку %del%):call set var=%%var:%del%=%% Обычно для таких вещей применяют EDE. Но можно и так, если очень хочется. --- "Это нэлзя понять, это можно толко запомныт!" (с)
|
cartmenezz
  - Стаж: 9 лет 7 месяцев
- Сообщений: 527
- Репутация:14[+] [-]
- Откуда: Калининград
|
85370Это нэлзя понять, это можно толко запомныт! вот и я так подумал)) ещё раз спасибо за разъяснения
|
Ander_73
  - Стаж: 8 лет 2 месяца
- Сообщений: 3983
- Репутация:127[+] [-]
|
cartmenezz, вот тебе для взрыва мозга примерчик. Я использовал в WInst, например. Запишем в файл tst строку:Windows folder is %windir% Выполним код:@echo off <tst set /p var= echo %var% call set var=%var% echo %var% Получим текст:Windows folder is %windir% Windows folder is C:\Windows Неплохой трюк для файлов конфигураций, в которых можно использовать переменные среды, например.
|
cartmenezz
  - Стаж: 9 лет 7 месяцев
- Сообщений: 527
- Репутация:14[+] [-]
- Откуда: Калининград
|
Ander_73, ну тут я в принципе понял что происходит, вы ведь мне как-то уже втолковывали засчет чего работает трюк с <nul set /p, может и не всё до меня дошло, но то что там берется первая строка из файла, я вроде запомнил. получается берется строка в исходном виде, а при переназначение %windir% уже раскрывается... выходит при считывании из файла, не происходит раскрытие переменных? они как бы и не воспринимаются как переменные? просто как текст?
|
Ander_73
  - Стаж: 8 лет 2 месяца
- Сообщений: 3983
- Репутация:127[+] [-]
|
85373при считывании из файла, не происходит раскрытие переменных? А с чего бы вдруг? Мы считываем текст и он может быть любым. В том числе с символами % и ты ды.
|
cartmenezz
  - Стаж: 9 лет 7 месяцев
- Сообщений: 527
- Репутация:14[+] [-]
- Откуда: Калининград
|
Ander_73, понятненько, просто как-то не приходилось об этом задумываться
|
ttng
 - Стаж: 6 лет
- Сообщений: 61
- Репутация:1[+] [-]
|
WGordy26, нет, мне нужна была не инсталляция, а инициализация. Но всё равно спасибо, мож и это когда-нить пригодится)))
|
rezorustavi
 - Стаж: 9 лет 3 месяца
- Сообщений: 918
- Репутация:55[+] [-]
- Откуда: Грузия, город Рустави
|
Друзья, кто сможет, проверьте пожалуйста и отпишитесь. У меня нет иконок с битым кэшем, проверить не могу, а этот вариант очень заинтересовал. Как в Windows 10 быстро сбросить кэш иконок без перезапуска Проводника и сторонних утилит. Cпособ исправить проблемы с некорректным отображением иконок. О нём мало кто знает, но он столь же эффективен, как и прочие способы, а самое главное он не требует ни перезапуска Проводника, ни использования сторонних утилит. Батник: ie4uinit -show Источник
Последний раз редактировалось: rezorustavi (2021-09-29 11:57), всего редактировалось 1 раз
|
 Отправлено: 19-Май-2021 22:35
(спустя 1 день 4 часа)
cartmenezz
  - Стаж: 9 лет 7 месяцев
- Сообщений: 527
- Репутация:14[+] [-]
- Откуда: Калининград
|
похоже наткнулся на какую-то странную пасхалку в винде (по крайней мере в Win10)  на работе частенько приходится вводить пароли, которые фиг запомнишь (при этом необходимость конфиденциальности под большим вопросом), я себе на них сделал ярлыки с быстрым запуском, запрятал их немного. и до недавнего времени не знал горя - нажал нужное сочетание клавиш, пароль скопировался в буфер, я его вставил. в ярлыке прописана такая команда:C:\Windows\System32\cmd.exe /c echo|set /p=MyPassWord| Clip но блин, обзавелся я паролем "h848h547", сделал как обычно ярлык:C:\Windows\System32\cmd.exe /c echo|set /p=h848h547| Clip и после вставки получаю китайские иероглифы))что за дичь такая?)) интересненько))
|
Ander_73
  - Стаж: 8 лет 2 месяца
- Сообщений: 3983
- Репутация:127[+] [-]
|
Мне тоже дико интересно, что даёт такая конструкция? Простоне проще?
|
 Отправлено: 19-Май-2021 23:58
(спустя 1 час 6 минут)
cartmenezz
  - Стаж: 9 лет 7 месяцев
- Сообщений: 527
- Репутация:14[+] [-]
- Откуда: Калининград
|
85634Мне тоже дико интересно, что даёт такая конструкция? если память не изменяет, вы мне ее и посоветовали)) (хотя может и нагуглил) так как "echo Pass| clip" добавляет перенос строки ... в любом случае, до этого что только не вводил, все нормально копировалось, а в "h848h547" видимо закодировано какое-то китайское послание... может там человека в подвале на фабрике удерживают, заставляют кодить на Майкрософт, надо разобраться))
|
Страница 48 из 94
Текущее время: 20-Апр 22:25
Часовой пояс: UTC + 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы
|
|