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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)

Модерирует : gyra, Maz

Maz (19-09-2020 13:36): Командная строка, батники, сценарии (bat, cmd) Часть 6  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

cchameleone



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Командная строка, батники\сценарии (bat, cmd)
(часть 1) (часть 2) (часть 3) (часть 4)
Вопросы, задачи и их решения по работе с командной строкой, файлами, а также сопутствующие ссылки.

Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!! Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте батник без пробелов.
 
Примечание: Большие куски кода заключайте в тэг [ more ].  

Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Microsoft Windows » Сценарии Windows

Полезные ссылки:
· Из Windows XP Professional Product Documentation:
» Описание Cmd.exe » Command shell overview
» Using batch files » Using batch parameters » Using filters » Using command redirection operators
 
· Уроки bat-аники (для начинающих): первый и второй
· Курс из 19 лекций "Командная строка и сценарии Windows"
· Попов А. Командная строка и сценарии Windows (PDF). Курс лекций для начинающих
· Бокалий В. Командная строка (pdf-брошюрка в 20 страниц)
· Александров А., Дибров А. Урок bat-аники (pdf)
· Уильям Р. Станек - Командная строка Windows. Справочник администратора
 
· Скрываем консольные окна, Выполнение BAT-скриптов без вызова окна консоли
· cmdow — изменение параметров и видимости дос-окна, Статья в КОМПЬЮТЕРРАONLINE
· Набор GNU утилит для win32
· HS_Packet.7z - Пакет утилит для организации интерфейса в bat-файлах
· Использование ansi.sys
· blat — отправка почты из консоли
· Команды RunDll32
· Quick Batch File Compiler - Позволяет превратить ваш батник в независимое приложение
· Easy Batch Builder+Rus+Crack - Редактор BAT файлов.Через графический интерфейс программы вы сможете быстро конструировать пакетные файлы практически любой сложности. (В комплекте есть Лоадер созданный с помощью Sign Of Misery некоторые антивирусы обзывают его вирусом. Вам решать: ставить или не ставить) (ЗЕРКАЛО)
· Простой способ получать текущую дату всегда в одном формате (не зависит от языков и настроек) ещё и ещё
· Переход из 32-битной версии cmd.exe в 64-битную (1) (2)(3)

Всего записей: 2279 | Зарегистр. 16-10-2015 | Отправлено: 09:22 29-04-2016 | Исправлено: Maz, 08:47 26-03-2020
Jonmey

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

Цитата:
Но было любопытно

Тогда удаляюсь, поскольку не специализируюсь на удовлетворении любопытства.




оффтоп

Всего записей: 1316 | Зарегистр. 17-01-2011 | Отправлено: 00:31 08-11-2018 | Исправлено: Maz, 11:32 10-11-2018
ForposT_ForeveR



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

Цитата:
Тогда удаляюсь

Спасибо за Ваше время, крайне полезны Ваши посты!




оффтоп

Всего записей: 525 | Зарегистр. 11-12-2004 | Отправлено: 00:34 08-11-2018 | Исправлено: Maz, 11:32 10-11-2018
Sinclair83

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Извините, что вмешиваюсь в разговор, но действия, которые будет выполнять батник (+сторонние утилиты) действительно очень похожи на деструктивные. Здесь солидарен с D1D1D1D.
 
Однако, чтобы это сообщение не было пустым(флудом) оставлю тут ссылку на утиль сканирования каталога. Надеюсь, что не сильно этим погрешу. Ведь она может пригодиться и для вполне себе мирных целей (очень на это надеюсь).
 
И вроде как по-теме (ForposT_ForeveR писал выше):

Цитата:
К сожалению, при таком коде мы теряем пустые директории.

и

Цитата:
Но было любопытно именно через сохранение в файл.

 
Использование:
Может принимать только один параметр. Собственно путь до цели. По окончании работы создаёт возле себя report.txt в формате utf-8.

Всего записей: 757 | Зарегистр. 07-01-2009 | Отправлено: 10:02 08-11-2018
MihailM



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здраствуйте , у меня вопрос:  а как из списка файлов (с полными путями- каталогами) , создать файлы пустышки  их этого списка ?
Вообще такое возможно , через батник сделать, я про создание сразу многоуровневых каталогов..

Всего записей: 2498 | Зарегистр. 19-10-2003 | Отправлено: 22:39 08-11-2018 | Исправлено: MihailM, 00:31 09-11-2018
Jonmey

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

Цитата:
Здраствуйте , у меня вопрос:  а как из списка файлов (с полными путями- каталогами) , создать файлы пустышки  их этого списка ?  
Вообще такое возможно , через батник сделать, я про создание сразу многоуровневых каталогов..

Типа такого:
:: Создание файлов и папок по списку из текстового файла,
:: содержащего полные имена. Файлы имеют нулевой размер,
:: но его можно задать, изменив в последней команде 0 на нужное число (байт).
::

@ECHO OFF &chcp 1251 >NUL &setlocal enableextensions
SET lst=filelist.txt
FOR /F "delims=" %%A IN (%lst%) DO (
IF NOT EXIST "%%~dpA" ( MKDIR "%%~dpA" )
IF NOT "%%A"=="%%~dpA" ( FSUTIL file createnew "%%A" 0 >NUL )
)

 
Добавлено:
 
Измененная версия вышеприведенного батника, в отличие которой работает со списками, содержащими не только полные пути
x:\папки_1_или_более\[имя_файла]
но и относительные пути вида
\папки_1_или_более\[имя_файла]
папки_1_или_более\[имя_файла]
 
Обратите внимание, если в списке присутствуют названия папок без слэша на конце
...папка\имя_подпапки (например, \папка1\папка2 )
то скрипт интерпретирует это как имя файла (а не папки) и создаст одноименный файл вместо папки.
То есть, названия всех папок в файле списке должны заканчиваться слэшем ("\")
 
@ECHO OFF &chcp 1251 >NUL &setlocal enableextensions
SET lst=filelist.txt
FOR /F "delims=" %%A IN (%lst%) DO (
IF NOT EXIST "%%~dpA" ( MKDIR "%%~dpA" )
IF NOT ""=="%%~nxA" ( FSUTIL file createnew "%%~fA" 0 >NUL )
)

 
Вместо строки  
 
FSUTIL file createnew "%%~fA" 0 >NUL
 
(если у вас проблемы с созданием файлов, или если вам не нужно задавать размеры выходных файлов, что используется, например, при тестировании железа) можно использовать одну из строк:
 
ECHO OFF >"%%~fA"
COPY NUL "%%~fA" >NUL
TYPE NUL >"%%~fA"  
REM:>"%%~fA" // вместо : может быть любой из + [ ] \ / . , ;
CD.>"%%~fA"
>NUL SET /p x=>"%%~fA"
SET x=>"%%~fA"  
?>"%%~fA" 2>NUL
*>"%%~fA" 2>NUL

 
Все строки в составе батника на корректность работы не проверял (только некоторые). Если будут проблемы - сообщайте в топике.

Всего записей: 1316 | Зарегистр. 17-01-2011 | Отправлено: 03:24 09-11-2018 | Исправлено: Jonmey, 03:29 10-11-2018
A27

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Задача с помощью move переместить файлы *.map из каталога Maps в текущий каталог с переименованием расширений в .yyy
 
Делал по разному:
 

Код:
Move Maps\*.map *.yyy
 
Move Maps\*.map .\*.yyy
 
Ren Maps\*.map *.yyy
Move Maps\*.yyy .
 
Ren Maps\*.map *.yyy
Move Maps\*.yyy .\
 
Move Maps\*.map %~DPS0*.yyy
 
Ren Maps\*.map *.yyy
Move Maps\*.yyy %~DPS0
 
For %%A in (Maps\*.map) do Move "%%A" "%%~NA.yyy"
 
Ren Maps\*.map *.yyy
For %%A in (Maps\*.yyy) do Move "%%A" .
 
Ren Maps\*.map *.yyy
For %%A in (Maps\*.yyy) do Move "%%A" .\
 
For %%A in (%~DPS0Maps\*.map) do Move "%%A" "%%~NA.yyy"
 
Ren Maps\*.map *.yyy
For %%A in (%~DPS0Maps\*.yyy) do Move "%%A" .
 
Ren Maps\*.map *.yyy
For %%A in (%~DPS0Maps\*.yyy) do Move "%%A" .\
 
For %%A in (%~DPS0Maps\*.map) do Move "%%A" "%~DPS0%%~NA.yyy"
 
Ren Maps\*.map *.yyy
For %%A in (%~DPS0Maps\*.yyy) do Move "%%A" %~DPS0

 
При любом выполнении команды Move всё время получаю сообщение "Некорректный синтаксис команды". Команда Ren выполняется без ошибок.
 
Ввиду отсутствия результативности делаю перемещение с помощью команд Copy и Del, но это некорректно и медленно. Скажите, как правильно перемещать с помощью Move?

Всего записей: 66 | Зарегистр. 30-03-2017 | Отправлено: 12:41 09-11-2018 | Исправлено: A27, 12:43 09-11-2018
MihailM



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Jonmey, спасибо , но только есть проблемка . Каталоги многоуровневые создает , а вот с файлами беда ..А мне надо еще и файлы, чтоб создавались.
Добавлено:

Цитата:
изменив в последней команде 0 на нужное число (байт).  

Это делал , если я правильно понял
здесь :
Цитата:
( FSUTIL file createnew "%%A" 0 >NUL )

  . Но ноль эмоций .

Всего записей: 2498 | Зарегистр. 19-10-2003 | Отправлено: 14:45 09-11-2018 | Исправлено: MihailM, 14:49 09-11-2018
YuS_2



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

Цитата:
При любом выполнении команды Move всё время получаю сообщение "Некорректный синтаксис команды".

Так в справке же написано:

Цитата:
При перемещении только одного файла, можно указать и его новое имя, если хотите выполнить его одновременное переименование при перемещении.

 
т.е. придется задействовать цикл for и перемещать файлы по одному...

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 15:32 09-11-2018 | Исправлено: YuS_2, 15:33 09-11-2018
Jonmey

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MihailM
У вас какая OS?

Всего записей: 1316 | Зарегистр. 17-01-2011 | Отправлено: 16:00 09-11-2018
MihailM



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Jonmey, win 7x64. Просто точно значение "0"  менять на свое значение ..

Всего записей: 2498 | Зарегистр. 19-10-2003 | Отправлено: 16:28 09-11-2018 | Исправлено: MihailM, 16:28 09-11-2018
Jonmey

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MihailM
Выложите (на обменник; тут приводить не нужно) пример файла списка, по которому у вас не создаются файлы.

Всего записей: 1316 | Зарегистр. 17-01-2011 | Отправлено: 16:31 09-11-2018
MihailM



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Jonmey. а смысл .. что у меня в списке могут отличатся файлы чтоль , ну если хотите то вот так вам http://prntscr.com/lgb8hq пример ..  
А так заметил одну вещь , вообщем программа fsutil выдает вот такое http://prntscr.com/lgb7e8 .. Я уже пробовал и с админскими правами запускать скрипт , так вообще ноль эмоций.
 

Всего записей: 2498 | Зарегистр. 19-10-2003 | Отправлено: 16:51 09-11-2018
Jonmey

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

Цитата:
а смысл

Гаданием не занимаюсь.

Цитата:
 если хотите то вот так вам http://prntscr.com/lgb8hq

У вас с русским плохо?
Я просил файл списка, а не скриншот. Если вам не нужна помощь, то так и скажите - я не буду тратить на вас время, поскольку у меня проблем с батником нет.
 
И да, пути в файле-списке должны быть абсолютными (с указанием диска x:\бла-бла-бла... )




Нарушение п. 2.4. главы VIII Соглашения по использованию

Всего записей: 1316 | Зарегистр. 17-01-2011 | Отправлено: 16:57 09-11-2018 | Исправлено: Maz, 11:34 10-11-2018
MihailM



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Jonmey, у меня список очень большой , и зачем она вам . А не проще самому на основе моего скрина сделать пару строчек для проверки.

Цитата:
И да, пути в файле-списке должны быть абсолютными (с указанием диска x:\бла-бла-бла... )

ну этого я не знал.. а если добавить самому в ваш скрипт то куда ?
Цитата:
поскольку у меня проблем с батником нет.  

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

Всего записей: 2498 | Зарегистр. 19-10-2003 | Отправлено: 17:38 09-11-2018 | Исправлено: MihailM, 17:40 09-11-2018
Jonmey

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MihailM
Отредактируйте ваш список, как сказано выше и будет вам счастье.

Всего записей: 1316 | Зарегистр. 17-01-2011 | Отправлено: 17:43 09-11-2018
MihailM



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Jonmey
Отвечу вашими же словами ,
Цитата:
У вас с русским плохо?  

Цитата:
у меня список очень большой  

Цитата:
ну этого я не знал.. а если добавить самому это
Цитата:
 x:\бла-бла-бла..
в ваш скрипт то куда ?  
Да и это видели
Цитата:
fsutil выдает вот такое http://prntscr.com/lgb7e8  

 ..А делаю я список с помощью одной программки , она создают список файлов именно с относительными путями . Пример я вам дал выше ввиде скрина . Так что ваше это
Цитата:
Отредактируйте ваш список,  
 тоже не вариант .
 
 

Всего записей: 2498 | Зарегистр. 19-10-2003 | Отправлено: 18:06 09-11-2018 | Исправлено: MihailM, 18:10 09-11-2018
Jonmey

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MihailM
MihailM писал:
Не делай людям добра - не получишь зла.
Вечная истина.
Засим с вами и закончим, поскольку решение исходной задачи предложено.  
* * *
Добавлено:
Тот факт, что вы, сформулировав собственные условия вашей же задачи
Цитата:
как из списка файлов (с полными путями- каталогами) , создать файлы пустышки  их этого списка ?
принципиально не желаете их выполнять
Цитата:

Цитата:
Отредактируйте ваш список, как сказано выше
тоже не вариант .
подсовывая батнику список с относительными (см. ваш же скрин), а не полными путями  и повторяя, как мантру, что батник у вас "не так работает" - это ваши личное горе и проблема, в решении которой вам никто не поможет, кроме вас самих.

Всего записей: 1316 | Зарегистр. 17-01-2011 | Отправлено: 18:10 09-11-2018 | Исправлено: Jonmey, 21:21 09-11-2018
MihailM



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

Цитата:
Не делай людям добра - не получишь зла.  

Я то вам зла и не делал , вы же наоборот.Опять же отвечу вашими словами :  

Цитата:
У вас с русским плохо?  


Цитата:
вообщем программа fsutil выдает вот такое http://prntscr.com/lgb7e8  

Вы бы лучше бы предложили другой вариант, а точнее чем заменить "fsutil" , чтобы создать файл. Если у меня проблема с этой программой. Так что решения для меня нет .
Цитата:
Засим с вами и закончим, поскольку решение исходной задачи предложено.  

Цитата:
ну у меня тоже как бы на половину , каталоги он создает .. а вот файлы нет.
Еще раз читаем внимательно !!!  
Ладно жаль конечно , придется самому сделать .. Думал , с помощью батника будет проще это сделать.  

Всего записей: 2498 | Зарегистр. 19-10-2003 | Отправлено: 18:30 09-11-2018
Sinclair83

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ссылка
 
Пример использования:
ScanDir.exe c:\1 c:\!
 
, где "c:\1" - источник (исходный каталог);
"c:\!" - целевой каталог (клон с файлами нулевого размера).
Мусор записать можно, но не буду.
 
Нет необходимости создавать список в одной программе, потом дополнительно обрабатывать его батником да ещё с использованием сторонних утилит. Предлагаю всё в одном. Только не уверен на счёт x64 (могут быть нюансы), так как нет под рукой.
 
Как и для чего это будет использоваться - пусть останется на вашей совести.

Всего записей: 757 | Зарегистр. 07-01-2009 | Отправлено: 22:00 09-11-2018
regist123



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MihailM 19:30 09-11-2018
Цитата:
Ладно жаль конечно , придется самому сделать .. Думал , с помощью батника будет проще это сделать.  

если не принципиально через батник, то попробуйте спросить в теме TCIMG .

Цитата:
Так что решения для меня нет .

Потому что изначально вы ввели всех в заблуждение неправильно поставив задачу 23:39 08-11-2018
Цитата:
а как из списка файлов (с полными путями- каталогами)  
а уже потом случайно выясняется, что у вас там не полные пути, а относительные.  


----------
Раздачи и акции

Всего записей: 7189 | Зарегистр. 20-03-2009 | Отправлено: 22:50 09-11-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

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)
Maz (19-09-2020 13:36): Командная строка, батники, сценарии (bat, cmd) Часть 6


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru