|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Переименование с проверкой файла (NirCmd) |
|
|
CMD/BAT - [решено] Переименование с проверкой файла (NirCmd)
|
Новый участник Сообщения: 45 |
Помогите, пожалуйста с написанием скрипта
(с использованием NirCmd)
log.dat – база данных(создается и пишется сервером) |
|
Отправлено: 14:51, 04-02-2018 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать что-то в последней строке nircmd не наблюдаю. Да, сарказм. А без nircmd лишат какой-то лицензии или работы?
|
Отправлено: 18:39, 04-02-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 45
|
Профиль | Отправить PM | Цитировать alpap, без флуда никак?
|
Отправлено: 19:22, 04-02-2018 | #3 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать lSVl,
в этой ветке никто никого не обязывает использовать nircmd, поэтому мой вопрос открыт, а именно: Можно решить задачу без использования (или почти без использования) nircmd? И да. В смысле при ответе - да, задачу и условие в студию. |
Отправлено: 22:54, 04-02-2018 | #4 |
Новый участник Сообщения: 45
|
Профиль | Отправить PM | Цитировать alpap, На NirCmd пал выбор из-за переменной ~$currdate.TimeFormat$, можно и с частичным использованием…
Есть сервер ModBusSrv.exe, который в процессе своей работы создает и пишет базу log.dat. Со временем log.dat разрастается до огромных размеров… Необходимо раз в месяц «резать» базу. Задача написать скрипт который
@echo off "%~dp0cmdow.exe" @ /HID :no nircmd.exe killprocess ModBusSrv.exe nircmd.exe waitprocess ModBusSrv.exe nircmd.exe execmd ren "log.dat" "log_~$currdate.dd_MM_yyyy$.dat" nircmd.exe wait 3000 nircmd.exe execmd if not exist "log_~$currdate.dd_MM_yyyy$.dat" goto :no start "" /d "%~dp0" /b "%~dp0ModBusSrv.exe" exit Так работает, но хочется более правильного решения, и запись результата работы скрипта в >"%~dp0ren_log.log" |
|
Последний раз редактировалось lSVl, 05-02-2018 в 10:58. Отправлено: 10:15, 05-02-2018 | #5 |
Пользователь Сообщения: 87
|
Профиль | Отправить PM | Цитировать Можно получить дату и нативными средствами. Пример:
FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "@Tdate=%%d" set TDStamp=%@Tdate:~0,4%-%@Tdate:~4,2%-%@Tdate:~6,2%_%@Tdate:~8,2%-%@Tdate:~10,2%-%@Tdate:~12,2% @echo off FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "@Tdate=%%d" Set "var0=%@Tdate:~0,4%" Set "var1=%@Tdate:~4,2%" Set "var2=%@Tdate:~6,2%" Set "var3=%@Tdate:~8,2%" Set "var4=%@Tdate:~10,2%" Set "var5=%@Tdate:~12,2%" echo all=%@Tdate% echo var0=%var0% echo var1=%var1% echo var2=%var2% echo var3=%var3% echo var4=%var4% echo var5=%var5% echo. echo example0=%var0%-%var1%-%var2%_%var3%-%var4%-%var5% echo. echo example1=[%@Tdate:~0,4%-%@Tdate:~4,2%-%@Tdate:~6,2%]_[%@Tdate:~8,2%-%@Tdate:~10,2%-%@Tdate:~12,2%] echo. echo example2=[%@Tdate:~0,4%]-[%@Tdate:~4,2%]-[%@Tdate:~6,2%]_[%@Tdate:~8,2%]-[%@Tdate:~10,2%]-[%@Tdate:~12,2%] echo. echo example3=[%@Tdate:~0,4%%@Tdate:~4,2%%@Tdate:~6,2%]_[%@Tdate:~8,2%%@Tdate:~10,2%%@Tdate:~12,2%] echo. echo example4=[%@Tdate:~0,4%_%@Tdate:~4,2%_%@Tdate:~6,2%]_[%@Tdate:~8,2%_%@Tdate:~10,2%_%@Tdate:~12,2%] echo. echo example5=%@Tdate:~0,4%_%@Tdate:~4,2%_%@Tdate:~6,2%_%@Tdate:~8,2%_%@Tdate:~10,2%_%@Tdate:~12,2% echo. echo example6=%@Tdate:~0,4%_%@Tdate:~4,2%_%@Tdate:~6,2%~%@Tdate:~8,2%_%@Tdate:~10,2%_%@Tdate:~12,2% echo. echo example7=[%@Tdate:~0,4%~%@Tdate:~4,2%~%@Tdate:~6,2%]~[%@Tdate:~8,2%~%@Tdate:~10,2%~%@Tdate:~12,2%] echo. echo example8=%@Tdate:~0,4%~%@Tdate:~4,2%~%@Tdate:~6,2%_%@Tdate:~8,2%~%@Tdate:~10,2%~%@Tdate:~12,2% echo. >nul pause 2018-01-24_16-11-12 [2018][01][24][16][11][12] [20180124][161112] 20180124161112 |
Отправлено: 11:31, 05-02-2018 | #6 |
Новый участник Сообщения: 45
|
Профиль | Отправить PM | Цитировать |
Отправлено: 17:26, 05-02-2018 | #7 |
Сообщения: 53556
|
Профиль | Отправить PM | Цитировать lSVl, а что вы, собственно, хотите сделать?
|
Отправлено: 19:46, 05-02-2018 | #8 |
Новый участник Сообщения: 45
|
Профиль | Отправить PM | Цитировать |
Отправлено: 20:06, 05-02-2018 | #9 |
Новый участник Сообщения: 45
|
Профиль | Отправить PM | Цитировать @echo off "%~dp0cmdow.exe" @ /HID FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "@Tdate=%%d" Set "var0=%@Tdate:~0,4%" Set "var1=%@Tdate:~4,2%" Set "var2=%@Tdate:~6,2%" Set "var3=%@Tdate:~8,2%" Set "var4=%@Tdate:~10,2%" Set "var5=%@Tdate:~12,2%" Set "srv=%~dp0ModBusSrv.exe" Set "log=%~dp0log.dat" @echo >"%~dp0ren_log.log" nircmd.exe killprocess "%srv%" nircmd.exe waitprocess "%srv%" @echo %srv% остановлен %var2%.%var1%.%var0% %var3%:%var4%:%var5%>>"%~dp0ren_log.log" if exist "%log%" ren "%log%" "log_%var2%_%var1%_%var0%.dat" @echo %log% переименован %var2%.%var1%.%var0% %var3%:%var4%:%var5%>>"%~dp0ren_log.log" nircmd.exe wait 3000 nircmd.exe execmd "%srv%" @echo %srv% запущен %var2%.%var1%.%var0% %var3%:%var4%:%var5%>>"%~dp0ren_log.log" exit ђҐ¦Ё¬ ўлў®¤* Є®¬**¤ ** нЄа** (ECHO) ®вЄ«озҐ*. G:\Work\ModBusSrv.exe остановлен 05.02.2018 21:05:19 G:\Work\log.dat переименован 05.02.2018 21:05:19 G:\Work\ModBusSrv.exe запущен 05.02.2018 21:05:19 Подскажите пожалуйста как исправить |
Отправлено: 22:15, 05-02-2018 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интерфейс - [решено] Переименование файла | mishkinstvo | Microsoft Windows 2000/XP | 5 | 10-12-2021 22:08 | |
CMD/BAT - Организация вывода файла на экран с предварительной проверкой. | besgranichni@vk | Скриптовые языки администрирования Windows | 8 | 18-12-2014 16:22 | |
CMD/BAT - [решено] копирование файла во все подкаталоги каталога с проверкой | yanus74 | Скриптовые языки администрирования Windows | 2 | 17-08-2014 09:40 | |
CMD/BAT - [решено] Переименование файла по данным из самого файла | dark-------13 | Скриптовые языки администрирования Windows | 11 | 21-04-2011 18:08 | |
VBS/WSH/JS - [решено] Скрипт обновления файла с проверкой по дате изменения. | CtrlD | Скриптовые языки администрирования Windows | 2 | 17-07-2010 10:45 |
|