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

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

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день!
 
помогите, пожалуйста, еще с одним скриптом.
 
Есть программа:
"C:\Program Files (x86)\Tester\tester.exe"
 
Подскажите, как сделать батник, чтобы можно перекинуть папку с файлами XML или просто несколько файлов XML на значок батника, чтобы запустилась программа tester. Как запустить сразу несколько копий tester? Допустим, я перекинул 4 файла XML и запустилось 4 копии программы tester
 
BorlandIMHO

Цитата:
Ну, в таком случае вообще не нужно вводить переменную FILE2PRINT в батнике, вместо неё с тем же успехом можно скормить wsf непосредственно "%1".

Так и сделал. Еще раз спасибо!

----------
Image Catalyst - оптимизация изображений без потери качества

Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 21:01 03-05-2018 | Исправлено: lorents, 21:04 03-05-2018
BorlandIMHO

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Насчёт папку - фиг знает, думать надо. Если просто кучу файлов - то так:
process.cmd

Код:
@echo OFF
:LOOP
if "%~1" == "" goto :EOF
start "%~1" "C:\Program Files (x86)\Tester\tester.exe" "%~1"
shift /1
goto :LOOP
 

Запустит tester для каждого из скормленных файликов отдельным процессом.
Файлики просто выделить в проводнике и перетащить мышОм на process.cmd
 
P.S. Опытным путём выявлено ограничение: не более 143 файлов за раз. Больше cmd переварить не может...

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

Всего записей: 2388 | Зарегистр. 12-10-2006 | Отправлено: 21:34 03-05-2018 | Исправлено: BorlandIMHO, 21:52 03-05-2018
NIKZZZZ



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lorents
Для файлов и папок

Код:
@echo OFF
:LOOP
if "%~1" == "" goto :EOF
set atr=%~a1
if %atr%==%atr:d=% goto _1
for /f "delims=" %%a in ('dir /b /a:-d "%~f1\*.xml"') do start "" "C:\Program Files (x86)\Tester\tester.exe" "%%~fa"
goto _2
:_1
start "" "C:\Program Files (x86)\Tester\tester.exe" "%~f1"
:_2
shift
goto :LOOP
 

 
 
Добавлено:

Цитата:
Опытным путём выявлено ограничение: не более 143 файлов за раз. Больше cmd переварить не может...

Там ограничение длины ком. строки 8191 символов скорее всего влияет.

Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 22:03 03-05-2018
lorents



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

----------
Image Catalyst - оптимизация изображений без потери качества

Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 22:11 03-05-2018
Alex_OS

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Создал файл "remove from admins.bat". Содержимое:

Код:
net localgroup Администраторы Алексей /delete

Если запустить файл, удаление из группы админов не происходит, но если выполнить эту комманду в cmd.exe, то происходит. Как заставить её выполняться запуском bat'ника? Bat'ник запускал от админа и это не сработало.

Всего записей: 207 | Зарегистр. 01-10-2017 | Отправлено: 22:37 03-05-2018
NIKZZZZ



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex_OS
Возможно проблема в кодировке, батник должен быть в OEM кодировке.
 

Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 22:41 03-05-2018
lorents



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NIKZZZZ
у меня с папками не работает
 
Программа выдает:
Файл C:\Users\Lorents\Desktop\3\NO_NDFL3_2.XML не найден
 
А файл находится в
C:\Users\Lorents\Desktop\3\1\NO_NDFL3_2.XML
 
Добавлено:
BorlandIMHO

Цитата:
 "%folder%\cscript.exe" //I //Nologo //Job:testPrint "%~dp0test.wsf" testPrint "%FILE2PRINT:\=\\%"  

Как сделать, чтобы работал по сетевым папкам тоже?

----------
Image Catalyst - оптимизация изображений без потери качества

Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 17:24 04-05-2018
BorlandIMHO

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

Цитата:
Как сделать, чтобы работал по сетевым папкам тоже?

А никак.
Как батнику, так и скрипту сугубо параллельно, сетевой путь или локальный.
Но винда (очевидно, из соображений безопасности) ограничивает доступ скрипта к сетевым ресурсам.

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

Всего записей: 2388 | Зарегистр. 12-10-2006 | Отправлено: 08:43 05-05-2018
NIKZZZZ



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

Цитата:
у меня с папками не работает  

 
Если нужно в папках искать рекурсивно

Код:
for /f "delims=" %%a in ('dir /b /a:-d /s "%~f1\*.xml"') do start "" "C:\Program Files (x86)\Tester\tester.exe" "%%~fa"  


Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 11:28 05-05-2018
lorents



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NIKZZZZ
Спасибо.
 
BorlandIMHO
Вы правы, ошибка именно с виндой

----------
Image Catalyst - оптимизация изображений без потери качества

Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 19:57 05-05-2018
Mr_SMiT



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть батник, работает как требуется. И вот понадобилось запустить его одной строкой, т.е. весь код чтобы был без переносов. Работают только две первые команды и то, если после них ничего нет.  
Как запустить в одну строку? уже голову сломал.
@echo off & echo 111111 & echo 222222 & pause
Два амперсанда тоже не помогают.

Всего записей: 650 | Зарегистр. 18-07-2006 | Отправлено: 07:56 06-05-2018
RetroRocket



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

Цитата:
Два амперсанда тоже не помогают.

У меня работают -

 
Добавлено:
Всё как в справке описано (cmd.exe /?) -
"Чтобы указать в одной строке несколько команд, следует разделить их символами '&&' и заключить в кавычки."

----------
"... Зовёт, зовёт в дорогу далёкий Млечный Путь ..."

Всего записей: 2682 | Зарегистр. 02-01-2018 | Отправлено: 08:40 06-05-2018
Mr_SMiT



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
@echo off
cd "%~dp0"
set /p str=<file.ini
set str=%str:;= + %
set str=%str:~0,-3%
copy /b %str% file.bin
Маленько неудачный пример я привел. Вот это не могу в одну строку сложить.

Всего записей: 650 | Зарегистр. 18-07-2006 | Отправлено: 08:54 06-05-2018 | Исправлено: Mr_SMiT, 12:42 06-05-2018
NIKZZZZ



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mr_SMiT
1.cd "%~dp0"  - %0 существует только в батниках
2. Необходимо использовать setlocal enabledelayedexpansion .  
 

Код:
setlocal enabledelayedexpansion & @echo off & set /p str=<lib.cfg & set str=!str:;= + ! & set str=!str:~0,-3%! & copy /b !str! ADAP_ios.VER  

Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 11:59 06-05-2018
Mr_SMiT



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NIKZZZZ
Спасибо, в батнике работает.

Всего записей: 650 | Зарегистр. 18-07-2006 | Отправлено: 12:42 06-05-2018
immotus



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Возвращаясь к моему вопросу:
Цитата:
Есть у кого готовый файл по выборочному переносу профильных папок пользователя Windows?
Только чтобы все корректно с сохранением псевдонимов.
и
Цитата:
Код все тот же, которым переносился "Рабочий стол" на Windows XP.
Код:
mkdir D:\User\Desktop
xcopy "%UserProfile%\ђ Ў®зЁ© бв®«" D:\User\Desktop /s/e/y
REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Desktop /t REG_SZ /d "D:\User\Desktop" /f
REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop /t REG_EXPAND_SZ /d "D:\User\Desktop" /f
Только чего-то вот с псевдонимами он не дружит. Надо чего-то подкорректировать. Так-то задолбало, каждую папку вручную переносить.
Может кто помочь поправить проблему с русскоязычными псевдонимами? Ну или сразу поделится готовым решением, если есть, а то вдруг в найденном мной коде есть еще какие "подводные камни"? Речь идет о русскоязычной Win10.

Всего записей: 1436 | Зарегистр. 27-07-2007 | Отправлено: 11:03 08-05-2018 | Исправлено: immotus, 11:07 08-05-2018
BorlandIMHO

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
immotus
Не очень давно отвечал на похожий вопрос. И не только я.

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

Всего записей: 2388 | Зарегистр. 12-10-2006 | Отправлено: 17:40 08-05-2018
RetroRocket



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Предыстория.
 
HandyCache
Исправленный lame.bat. Файлы с пробелами в именах обрабатывает корректно.

Код:
@echo off
rem  please set LAME and LAMEOPTS
rem  LAME - where the executeable is
rem  OPTS - options you like LAME to use
rem  ---------------------------------------------
 
    set LAME=c:\lame\lame.exe
    set OPTS=--preset radio
 
rem  ---------------------------------------------
    set thecmd=%LAME% %OPTS%
::    lfnfor on
:processArgs
    if -%1==- goto endmark
    echo.
    echo Converting %1 ...
    echo.
    for /F "delims=" %%f in (%1) do %thecmd% "%%f"
    if %errorlevel% neq 0 goto errormark
    echo.
    echo Deleting %1 ...
    del %1
    shift
    goto processArgs
:errormark
    echo.
    echo.
    echo ERROR processing %1
    echo.
    pause  
:endmark
echo.
echo.
echo Finished.
echo.


----------
"... Зовёт, зовёт в дорогу далёкий Млечный Путь ..."

Всего записей: 2682 | Зарегистр. 02-01-2018 | Отправлено: 09:57 10-05-2018
irsemi

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RetroRocket
Подскажите пожалуйста, какую роль в этом батнике выполняет

Код:
for /F "delims=" %%f in (%1) do %thecmd% "%%f"

 
Почему нельзя написать

Код:
%thecmd% %1

или

Код:
%thecmd% "%~1"

?
 
Добавлено:
И вообще, если в пути к файлу не будет пробелов и соответственно кавычек

Код:
for /F "delims=" %%f in (%1) do %thecmd% "%%f"

Попытается открыть первый mp3 как файл-список?

Всего записей: 89 | Зарегистр. 28-11-2016 | Отправлено: 18:50 10-05-2018
RetroRocket



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
irsemi
Я не с нуля делал батник, а просто немного доработал тот, что был в комплекте lame-3.92, для корректной работы с файлами, содержащими пробелы в имени.
На вход батнику подаются несколько имён файлов через пробел (например, lame.bat "1 2.wav" "3 4.wav" "5 6.wav" "7 8.wav").
Наверное, сработало бы и без цикла for, ведь на каждой итерации в параметре %1 имя только одного файла - первоначально %1="1 2.wav", после первой команды shift %1="3 4.wav", после второй команды shift %1="5 6.wav" и так далее до обнуления %1.

Цитата:
Попытается открыть первый mp3 как файл-список?

Почему список то? Переменной %f присвоится значение параметра %1 (пусть, к примеру, 123.wav) и выполнится команда  

Код:
lame.exe --preset radio 123.wav


----------
"... Зовёт, зовёт в дорогу далёкий Млечный Путь ..."

Всего записей: 2682 | Зарегистр. 02-01-2018 | Отправлено: 19:36 10-05-2018
Открыть новую тему     Написать ответ в эту тему

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