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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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.
• Сторонние консольные утилиты можно использовать только в виде готового решения и только в рамках сценариев. Никаких обсуждений и обучений работе с утилитами не предусмотрено и прямо запрещено правилами топика.
Шапка и около-темные вопросы |

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



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

Цитата:
была надежда на PowerShel, но и тут облом

Как раз PowerShell выводит, это только %%~nxI без расширения, что вполне логично.

----------
Разум когда-нибудь победит

Всего записей: 3214 | Зарегистр. 09-02-2003 | Отправлено: 00:39 28-08-2022 | Исправлено: Smitis, 00:41 28-08-2022
BorlandIMHO

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Okapulka
На всякий случай, вариант на powershell (для win 10):

Код:
Add-Type -AssemblyName System.speech
$speech = New-Object System.Speech.Synthesis.SpeechSynthesizer
$speech.SelectVoice('Microsoft Irina Desktop')
 
$CurrentTime=[string](Get-Date -Format "HH:mm:ss")
 
$speech.Speak($CurrentTime)

 
boss911

Цитата:
была надежда на PowerShel, но и тут облом.


Код:
PowerShell -command "Get-ChildItem -Recurse %1 | foreach {$_.FullName+'        '+$_.Name}"


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

Всего записей: 2399 | Зарегистр. 12-10-2006 | Отправлено: 01:01 28-08-2022 | Исправлено: BorlandIMHO, 00:55 30-08-2022
boss911



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

Цитата:
Как раз PowerShell выводит

Команда:

Код:
Get-ChildItem -Name -Recurse d:\data

в командной строке Powershell, где в папке "d:\data" лежит файл "file." выводит результат с именем файла без точки. Показал бы скрином, да вот только Проводник, FAR и TC так же показывают файл без точки, так что прошу поверить на слово. Win7SP1, где версия Powershell из коробки - 2.0 (мои вышеуказанные требования к ОС). Вы о чем?
 
Добавлено:
BorlandIMHO

Цитата:
PowerShell -command "Get-ChildItem -Recurse %1 | foreach {$_.FullName+'        '+$_.Name}"

Без точки выводит. ОС и Powershell выше.

Всего записей: 3699 | Зарегистр. 29-01-2005 | Отправлено: 01:01 28-08-2022
BorlandIMHO

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

Цитата:
FAR и TC так же показывают файл без точки

тц у меня нету, а фар нормально показывает...

И проводник, кстати, тоже

 
Добавлено:

Цитата:
Без точки выводит.

Ну, значит обновлять powershell придётся...
 
Ещё добавлено:
В powershell версии 2.0 файл с точкой на конце вообще не берётся gci...
 
И ещё добавлено:
Минимально потребная версия повершелла - 3.0


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

Всего записей: 2399 | Зарегистр. 12-10-2006 | Отправлено: 01:05 28-08-2022 | Исправлено: BorlandIMHO, 01:41 28-08-2022
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
boss911
У меня и ФАР с точкой показывает (и ВСЕГДА такие файлы показывал я даже для эксперимента именно из ФАРа такой файл создал) и PS с точкой выводит и даже cmd с точкой выводит (%%I показывается с точкой!).
 
Добавлено:
Проблема действительно в PowerShell 2.0.

----------
Разум когда-нибудь победит

Всего записей: 3214 | Зарегистр. 09-02-2003 | Отправлено: 01:43 28-08-2022 | Исправлено: Smitis, 01:48 28-08-2022
boss911



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Похоже совсем хреновые дела у Win с файлами с точкой в конце. Есть некий архив (CAB), в котором содержится файл с именем "file.", архиватор 7-zip или WinRAR его, я так понял, распаковывают без точки (уже плохо, так как именно так я должен получить этот файл - распаковать из архива). У FAR v2.x (имеющеюся у меня древняя не моя сборка) так же проблемы - точки не видит, даже при переименовании точку сжирает. FAR3 точку при переименовании оставляет, после чего ее даже Проводник (Win7SP1) видит, но Powershell v2.0 с вышеуказанными командами это файл в листинге вообще не показывает.
 
BorlandIMHO

Цитата:
Ну, значит обновлять powershell придётся...

А это уже вариант не из коробки Win7SP, что не вариант для меня. Тогда уже проще использовать стороннюю тулзу, как советуют, из BusyBox. Но опять же, как только что выяснил, 7-zip/WinRAR распакует CAB архив, где у файла сожрется точка в конце имени файла при распаковке. Пока что тупик, мне надо было начать с этой проблемы, перед тем, как сюда обращаться.

Всего записей: 3699 | Зарегистр. 29-01-2005 | Отправлено: 01:56 28-08-2022 | Исправлено: boss911, 01:59 28-08-2022
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
boss911
Все с точками показывает:

 
Насчет распаковки - в RAR/WinRAR ключ -oni или при извлечении вкладка Дополнительно - Разрешить потенциально несовместимые имена.

Всего записей: 12396 | Зарегистр. 11-03-2002 | Отправлено: 06:22 28-08-2022
boss911



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ
 
Вы правы, старый добрый DIR показывает точку, в отличии от PowerShell v2.0.

Цитата:
в RAR/WinRAR ключ -oni или при извлечении вкладка Дополнительно - Разрешить потенциально несовместимые имена.

GUI опция работает только с RAR архивами, а консольная версия только RAR понимает. У меня CAB. У консольного 7z нужного параметра не нашел. Два популярных архиватора отпали.
 
Как не странно, но виндовый expand.exe корректно распаковывает свой родной CAB, с точками в конце файлов. Но так хотелось GUIшного решения. Даже TC подвел с его MultiArc+MsCab.exe.
 
Продолжаем головняк. Извлекли мы из CAB "file.", то проводник не дает его удалить, даже с выгруженным explorer нельзя удалить, помог только FAR3 (F6 и убираем точку из имени), TC оказался бессилен. Вряд ли только ради этой цели я буду у себя держать FAR3. И по поводу вывода:

Код:
FOR /F "Tokens=*" %%I IN ('DIR 2^> nul /B /A-D /S /ON %1') DO ECHO "%%~I"    "%%~nxI"

Если "%%~I" показывает точку, то "%%~nxI" - нет. Мне нужен именно такой формат листинга. Как тут быть? Спасибо.

Всего записей: 3699 | Зарегистр. 29-01-2005 | Отправлено: 16:21 28-08-2022 | Исправлено: boss911, 16:24 28-08-2022
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
boss911
Чтобы удалить через DEL, надо указать полный пусть с префиксом:

Цитата:
del /f /q "\\?\C:\Test\test."
кавычки не обязательны, так, вдруг где-то пробелы.
 
Добавлено:
boss911
Насчет ключа -oni - WinRAR.exe тоже ключи запуска поддерживает, если что. Ну кроме нескольких консольно-специфичных

Всего записей: 12396 | Зарегистр. 11-03-2002 | Отправлено: 16:26 28-08-2022
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
boss911
Цитата:
старый добрый DIR показывает точку, в отличии от PowerShell v2.0

показывает, но атрибуты…
 


Всего записей: 3519 | Зарегистр. 16-08-2012 | Отправлено: 18:28 28-08-2022
JekaRus

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
У меня в файле идет построчная работа wget по скачиванию файлов такого вида
wget -q -O D:\TEMP\01.jpg https://server.net/img_1.jpeg
wget -q -O D:\TEMP\02.jpg https://server.net/img_2.jpeg
wget -q -O D:\TEMP\03.jpg https://server.net/img_3.jpeg
 
Можно ли как то сделать задержку между командами, например, командой ping,
но чтоб не добавлять дополнительные строки, а в уже существующих дописать задержки?
Чтоб получилось типа такого
wget -q -O D:\TEMP\01.jpg https://server.net/img_1.jpeg ping -n 1 -w 5000 192.168.254.254 >nul
wget -q -O D:\TEMP\02.jpg https://server.net/img_2.jpeg ping -n 1 -w 5000 192.168.254.254 >nul
wget -q -O D:\TEMP\03.jpg https://server.net/img_3.jpeg ping -n 1 -w 5000 192.168.254.254 >nul
 
Задержки самого wget c параметрами -w и -T не дают задержек.
Спасибо.

Всего записей: 1046 | Зарегистр. 10-08-2005 | Отправлено: 15:34 30-08-2022
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
JekaRus, Using multiple commands and conditional processing symbols
 
например:

Код:
wget -q -O D:\TEMP\01.jpg https://server.net/img_1.jpeg & ping -n 1 -w 5000 192.168.254.254 >nul

Всего записей: 3519 | Зарегистр. 16-08-2012 | Отправлено: 20:57 30-08-2022
JekaRus

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
iNNOKENTIY21
Спасибо. То что нужно. Не додумался просто & поставить.
Благодарю.

Всего записей: 1046 | Зарегистр. 10-08-2005 | Отправлено: 00:25 31-08-2022
Taran2ul



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте.
Помогите пожалуста решить задачу. Есть упаковщик advzip.exe и пару тысяч файлов. Хочу запустить перепаковку с параметрами advzip.exe -z -q -4 -i 30, но так как программа не умеет использовать multi-core, то хотелось бы через батник запускать обработку с контролем количества запущенных копий (8-ядерный процессор). Хорошо бы, чтобы была рекурсивная обработка по расширению или обработка списка с полными путями.

Всего записей: 458 | Зарегистр. 18-02-2008 | Отправлено: 16:27 03-09-2022
Richard_Nixon



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Аналогичное задание на PS (ps1) успешно работает на другом ПК с той же ОС. Сам его и создавал много лет назад.
Перенёс на другой ПК и перестало видеть путь вываливаясь с ошибкой "Не удаётся найти "C:\Program". Проверьте правильно ли указано имя и повторите попытку"

Цитата:
$pth = "D:\Dropbox\Dropbox\1SUPPORT\тестовый"
# Таймаут (в мс.)
$tout = 1000
$wtch = new-object system.io.filesystemwatcher
$wtch.path = $pth
$wtch.internalbuffersize = 16384  
$wtch.enableraisingevents = $true  
do {
    $res = $wtch.waitforchanged("changed", $tout)
    if ($res.timedout -eq $false){
dir "$($pth)\$($res.name)"|%{$fchd=$_.fullname}
cmd /c start "`" "`"C:\Program Files (x86)\The Bat!\thebat.exe" /MAILU=bot@mail.com;TO=truemail@mail.com;S=БОТ-Сайт;QUEUE;SEND"  
    }
} until ([system.console]::keyavailable)

 
Я что-то упускаю из виду? Необходимо создать текстовый в определённой кодировке? Как написано в шапке 1251 (ANSI). Дело в этом?

Всего записей: 89 | Зарегистр. 22-02-2017 | Отправлено: 20:39 03-09-2022
grablin

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени!  
Есть скрипт .ahk запакованный в исполняемый .exe
И есть в планировщике задание убить этот скрипт как процесс при определенных условиях.
Задание повесил на "запуск программы" с аргументами:
 

Цитата:
 
taskkill
/t /im HandTool.exe
 

 
При срабатывании задания на долю секунды мелькает окно CMD с заголовком C:\Windows\System32\taskkill.exe  
 
Как захайдить это окно при срабатывании задания?
 
_
_
_
_
__________________
 

Цитата:
Перенёс на другой ПК и перестало видеть путь вываливаясь с ошибкой "Не удаётся найти "C:\Program". Проверьте правильно ли указано имя и повторите попытку"
 

 
Несмотря на наличие кавычек, я думаю тут проблема в обработке пробелов.  
Попробуйте поиграться с переменными средами в путях . Это может помочь.
 
например:
 
%ProgramFiles(x86)%
 
или указать короткое имя
PATH=
"c:\PROGRA~2

Всего записей: 256 | Зарегистр. 25-04-2009 | Отправлено: 23:43 03-09-2022 | Исправлено: grablin, 00:24 04-09-2022
iNNOKENTIY21



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

Цитата:
Как захайдить это окно при срабатывании задания?

Я пользуюсь: свойства задания, вкладка Общие, Выполнять для всех пользователей (могут быть проблемы с пользовательскими переменными, тут лучше использовать полные пути в скрипте)
 
Добавлено:
Taran2ul, PowerShell (версия), Cmd, WSH (VBScript, JScript), ОС? Каждый файл в отдельный архив? Запускать N экземпляров программы (по числу ядер)? Узкое место обычно диск, и распараллеливание не помогает, если конечно не процессор, узкое место.
 
Добавлено:
Richard_Nixon
Цитата:
вываливаясь с ошибкой "Не удаётся найти "C:\Program"

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

Код:
cmd /c start "`" "`"C:\Program Files (x86)\The Bat!\thebat.exe" /MAILU=bot@mail.com;TO=truemail@mail.com;S=БОТ-Сайт;QUEUE;SEND"

 
да и зачем там cmd вообще?…

Всего записей: 3519 | Зарегистр. 16-08-2012 | Отправлено: 00:32 04-09-2022 | Исправлено: iNNOKENTIY21, 00:33 04-09-2022
grablin

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

Цитата:
Я пользуюсь: свойства задания, вкладка Общие, Выполнять для всех пользователей (могут быть проблемы с пользовательскими переменными, тут лучше использовать полные пути в скрипте)

 
Не выполняет.
Путей в теле скрипта нет
Путей к расположению  скрипта нет.
 
В системе идет аудит процессов, работающий скрипт определяется  как процесс.
Вот как его кильнуть из планировшика незаметно, без мельканий окон?
 
Добавлено:

Цитата:
grablin совет попробуйте или кавычки проверять и проверять  

Точно!
Сразу не обратил внимание на кавычки

Всего записей: 256 | Зарегистр. 25-04-2009 | Отправлено: 00:54 04-09-2022 | Исправлено: grablin, 01:04 04-09-2022
iNNOKENTIY21



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

Цитата:
Вот как его кильнуть из планировшика незаметно, без мельканий окон?

непосредственно видимо никак. через скрывалки, например:
Код:
nircmd exec hide taskkill.exe /t /im HandTool.exe

 
Выполнение BAT-скриптов без вызова окна консоли

Всего записей: 3519 | Зарегистр. 16-08-2012 | Отправлено: 02:04 04-09-2022
Richard_Nixon



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

Цитата:
полную бы ошибку скопипастили и где она.

Ошибку показал:
"Не удаётся найти "C:\Program". Проверьте правильно ли указано имя и повторите попытку"  
 
Всплывает при тестировании задания в планировщике.  Вспоминаю что много лет назад имела место история с апострофами - какая-то кодировка не срабатывала, заменял апострофы в другой кодировке. Теперь не помню как.
 
Ну а при замене переменной %ProgramFiles(x86)%  - необходимо еще решать проблему с пробелом каталога The Bat!, тоже в переменные среды внести? Не избыточно?
Вообще конечно хотелось бы выполнить задание лаконично. Считаете что cmd можно не использовать?
Я не против, тогда как в PS это прописываем?  
Так достаточно будет?

Цитата:
""C:\Program Files (x86)\The Bat!\thebat.exe" /MAILU=bot@mail.com;TO=truemail@mail.com;S=БОТ-Сайт;QUEUE;SEND"

Всего записей: 89 | Зарегистр. 22-02-2017 | Отправлено: 08:51 04-09-2022 | Исправлено: Richard_Nixon, 08:55 04-09-2022
Открыть новую тему     Написать ответ в эту тему

Страницы: 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