Simple Crypt, спасибо - помогло!
» Задачи на bat-файлах 5
Еще один способ выяснения текущего дня недели с помощью утилиты из Reskit now.exe
SETLOCAL EnableDelayedExpansion
call :GetWeekdayNumber
echo %dd%
GOTO :EOF
:GetWeekdayNumber
now.exe | FIND /I "mon" && (SET dd=1 & GOTO :EOF)
now.exe | FIND /I "tue" && (SET dd=2 & GOTO :EOF)
now.exe | FIND /I "Wed" && (SET dd=3 & GOTO :EOF)
now.exe | FIND /I "Thu" && (SET dd=4 & GOTO :EOF)
now.exe | FIND /I "Fri" && (SET dd=5 & GOTO :EOF)
now.exe | FIND /I "Sat" && (SET dd=6 & GOTO :EOF)
now.exe | FIND /I "Sun" && (SET dd=7 & GOTO :EOF)
GOTO :EOF
SETLOCAL EnableDelayedExpansion
call :GetWeekdayNumber
echo %dd%
GOTO :EOF
:GetWeekdayNumber
now.exe | FIND /I "mon" && (SET dd=1 & GOTO :EOF)
now.exe | FIND /I "tue" && (SET dd=2 & GOTO :EOF)
now.exe | FIND /I "Wed" && (SET dd=3 & GOTO :EOF)
now.exe | FIND /I "Thu" && (SET dd=4 & GOTO :EOF)
now.exe | FIND /I "Fri" && (SET dd=5 & GOTO :EOF)
now.exe | FIND /I "Sat" && (SET dd=6 & GOTO :EOF)
now.exe | FIND /I "Sun" && (SET dd=7 & GOTO :EOF)
GOTO :EOF
Simple Crypt, спасибо!
Rush, на глазок на мегабайтном логе разницы в скорости не вижу
По вопросу что-то ничего не нашлось, а он простой: как запустить TheBat! с параметрами из BAT файла?
Они (Риты), как нарочно затруднили автоматизацию. То у них восклицательный знак по умолчанию в имени директории, то символ ключа - слэш!
У меня кострукция
start /max "c:\program files\the bat!\thebat.exe" /nologo /mailu=....
дает ошибку:
Недопустимый ключ: "/nologo".
По-моему это сообщение команды start
что делать? нужно что бы батник закрывался, а почтовик продолжал работать.
Они (Риты), как нарочно затруднили автоматизацию. То у них восклицательный знак по умолчанию в имени директории, то символ ключа - слэш!
У меня кострукция
start /max "c:\program files\the bat!\thebat.exe" /nologo /mailu=....
дает ошибку:
Недопустимый ключ: "/nologo".
По-моему это сообщение команды start
что делать? нужно что бы батник закрывался, а почтовик продолжал работать.
Ilyansk
Цитата:
Код: start "" /max "c:\program files\the bat!\thebat.exe" /nologo /mailu=....
Цитата:
что делать? нужно что бы батник закрывался, а почтовик продолжал работать.
Код: start "" /max "c:\program files\the bat!\thebat.exe" /nologo /mailu=....
Здравствуйте, вообщем имеется батник который спрашивает откуда копировать файлы и куда копировать... Но проблема в том что батник спрашивает "С какого hdd сделать backup?"... В идеале - надо ввести просто букву диска, без : или \ так как батник их сам подставит... Тоесть требуется чтобы в случае если юзер введет C:\ или C: - батник удалял : или :\ автоматом...
Так же для "Куда копировать?" нужно чтоб батник делал следующее:
1. После ввода пути - батник должен проверить наличие диска на который юзер хочет копировать... Тоесть - юзер ввел H:\backup\1234, батник выполнил "if exist H: (goto EXIST) else goto NOT EXIST"
2. Требуется чтобы в случае если юзер введет H:\backup\1234\ - батник удалил последнюю \ так как батник сам ее проставит...
Так же есть проблема в том что надо через xcopy создавать папку - вида DD.MM.YYYY_HH-MM-SS ... Но если поставить - %date%_%time% - xcopy не может создать папку так как %time% выглядит как - HH:MM , но в винде нельзя создать папку с именем в котором имеется :
P.S.
Повторю свои старые вопросы на которые так и не последовало ответов:
Цитата:
Цитата:
Заранее, спасибо!
Так же для "Куда копировать?" нужно чтоб батник делал следующее:
1. После ввода пути - батник должен проверить наличие диска на который юзер хочет копировать... Тоесть - юзер ввел H:\backup\1234, батник выполнил "if exist H: (goto EXIST) else goto NOT EXIST"
2. Требуется чтобы в случае если юзер введет H:\backup\1234\ - батник удалил последнюю \ так как батник сам ее проставит...
Так же есть проблема в том что надо через xcopy создавать папку - вида DD.MM.YYYY_HH-MM-SS ... Но если поставить - %date%_%time% - xcopy не может создать папку так как %time% выглядит как - HH:MM , но в винде нельзя создать папку с именем в котором имеется :
P.S.
Повторю свои старые вопросы на которые так и не последовало ответов:
Цитата:
Еще хотелось бы узнать - как заставить батник записывать ВСЕ свои действия в лог...
Цитата:
Кстати - реально ли сделать так чтобы, батник сохранял свои последнии настройки в файл конфигурации... И считывал их оттуда...
Заранее, спасибо!
Grim_Repo
Цитата:
for /f "tokens=x delims=:" %%e in ("%time%") do (
Разбери %time% как строчку, справка тебе в помощь. По остальным вопросам, всё это многократно обсуждалось, советую скачать все страницы темы, начиная со свежих.
set /?
Цитата:
Вполне.
Цитата:
так как %time% выглядит как - HH:MM , но в винде нельзя создать папку с именем в котором имеется :
for /f "tokens=x delims=:" %%e in ("%time%") do (
Разбери %time% как строчку, справка тебе в помощь. По остальным вопросам, всё это многократно обсуждалось, советую скачать все страницы темы, начиная со свежих.
set /?
Цитата:
Кстати - реально ли сделать так чтобы, батник сохранял свои последнии настройки в файл конфигурации... И считывал их оттуда...
Вполне.
Простой вопрос, а ставит нас в тупик!
set a=1 & echo %a%
Какого рожна не выводит присвоенного значения переменной?
Помогите разобраться с тремя соснами!
set a=1 & echo %a%
Какого рожна не выводит присвоенного значения переменной?
Помогите разобраться с тремя соснами!
Grim_Repo
Цитата:
Код: @echo off
set /p drive=Введите диск
set drive=%drive:~0,1%
Цитата:
Тоесть требуется чтобы в случае если юзер введет C:\ или C: - батник удалял : или :\ автоматом...
Код: @echo off
set /p drive=Введите диск
set drive=%drive:~0,1%
shva
Код:
@echo off
setlocal enabledelayedexpansion
set a=1 & echo !a!
Код:
@echo off
setlocal enabledelayedexpansion
set a=1 & echo !a!
Grim_Repo
Цитата:
for /f "tokens=1-6 delims=:., " %a in ("%date% %time:~,-3%") do echo "[%c.%b.%a_%d.%e.%f]"
Цитата:
Так же есть проблема в том что надо через xcopy создавать папку - вида DD.MM.YYYY_HH-MM-SS ... Но если поставить - %date%_%time% - xcopy не может создать папку так как %time% выглядит как - HH:MM , но в винде нельзя создать папку с именем в котором имеется :
for /f "tokens=1-6 delims=:., " %a in ("%date% %time:~,-3%") do echo "[%c.%b.%a_%d.%e.%f]"
shva
Цитата:
Строка выполняется как одна команда. Соответственно, CMD подставляет туда значение переменных до начала выполнения. А что у было нас в переменной "а" до выполнения? Правильно - ничего. Либо переводи чтение переменной на следующую строку, либо используй вариант, показанный 01MDM выше.
Цитата:
Простой вопрос, а ставит нас в тупик!
set a=1 & echo %a%
Какого рожна не выводит присвоенного значения переменной?
Строка выполняется как одна команда. Соответственно, CMD подставляет туда значение переменных до начала выполнения. А что у было нас в переменной "а" до выполнения? Правильно - ничего. Либо переводи чтение переменной на следующую строку, либо используй вариант, показанный 01MDM выше.
Tipulatoid
Спасибо за отклик. Почтовик я так и запускаю (определяю немного не так). Если не сложно, поясните, плз, почему конструкция
start "" /max "%smailclient%" /nologo /mailu=....
не принимает высказывание /nologo за ключ, а в случае
start /max "%MAILER%" /nologo /BATCH:"%wd%rass.txt"
принимает?
ЗЫ %MAILER% несет полный путь к почтовику
Elroir
в таком случае используется инструкция
setlocal enabledelayedexpansion
и выражение
set a=1 & echo !a!
т.е. переменная обрамляется восклицательными знаками. Внимание: выражение setlocal enabledelayedexpansion - палка о двух концах. Из текстовых переменных исчезают при выводе восклицательные знаки. Когда я столкнулся с этим применил при обращении к ней инструкцию setlocal DISABLEDELAYEDEXPANSION, потом снова включал setlocal enabledelayedexpansion
Спасибо за отклик. Почтовик я так и запускаю (определяю немного не так). Если не сложно, поясните, плз, почему конструкция
start "" /max "%smailclient%" /nologo /mailu=....
не принимает высказывание /nologo за ключ, а в случае
start /max "%MAILER%" /nologo /BATCH:"%wd%rass.txt"
принимает?
ЗЫ %MAILER% несет полный путь к почтовику
Elroir
в таком случае используется инструкция
setlocal enabledelayedexpansion
и выражение
set a=1 & echo !a!
т.е. переменная обрамляется восклицательными знаками. Внимание: выражение setlocal enabledelayedexpansion - палка о двух концах. Из текстовых переменных исчезают при выводе восклицательные знаки. Когда я столкнулся с этим применил при обращении к ней инструкцию setlocal DISABLEDELAYEDEXPANSION, потом снова включал setlocal enabledelayedexpansion
01MDM
Elroir
Ilyansk
Спасибо за подсказку и разъяснения!
Elroir
Тяжело воспринимается фраза "Строка выполняется как одна команда", ведь очевидно, что в строке две команды объединенные символом "&" !?
Elroir
Ilyansk
Спасибо за подсказку и разъяснения!
Elroir
Тяжело воспринимается фраза "Строка выполняется как одна команда", ведь очевидно, что в строке две команды объединенные символом "&" !?
Народ, помогите кто может!
Просьба не остылать к мануалам, т.к. ограничен по времени и мозгу.
Есть необходимость в батнике, который бы копировал из папки D:\1 последний созданный файл, причем время создания должна учитываться вплоть до секунд.
В папку D:\2.
Во второй части задач на бат нашел что-то подобное но реализовать под себя не смог.
Существует ли возможность производить копирование файла в зависимости от наличия в содержимом файле кодового слова(у него нет четкой позиции в файле). Если да, хотелось бвы увидеть пример.
Заранее благодарю, всех откликнувшихся за ответы.
Просьба не остылать к мануалам, т.к. ограничен по времени и мозгу.
Есть необходимость в батнике, который бы копировал из папки D:\1 последний созданный файл, причем время создания должна учитываться вплоть до секунд.
В папку D:\2.
Во второй части задач на бат нашел что-то подобное но реализовать под себя не смог.
Существует ли возможность производить копирование файла в зависимости от наличия в содержимом файле кодового слова(у него нет четкой позиции в файле). Если да, хотелось бвы увидеть пример.
Заранее благодарю, всех откликнувшихся за ответы.
добрый день
подскажите как лучше определить ОС
если по команде ver
XP выдает -- Microsoft Windows XP [Version 5.1.2600]
Microsoft Windows XP [Версия 5.1.2600]
Vista -- Microsoft Windows [Версия 6.0.6000]
Vista с SP1 Microsoft Windows [Версия 6.0.6001]
то можно так
FOR /f "TOKENS=*" %%i IN ('ver ^| FIND "Версия 5.1.2600"') DO GOTO XP_RU
FOR /f "TOKENS=*" %%i IN ('ver ^| FIND "Version 5.1.2600"') DO GOTO XP_EN
FOR /f "TOKENS=*" %%i IN ('ver ^| FIND "6.0.6000"') DO GOTO Vista
FOR /f "TOKENS=*" %%i IN ('ver ^| FIND "6.0.6001"') DO GOTO Vista
но чтото не очень нравится
какие есть еще варианты - более красивые
спасибо
подскажите как лучше определить ОС
если по команде ver
XP выдает -- Microsoft Windows XP [Version 5.1.2600]
Microsoft Windows XP [Версия 5.1.2600]
Vista -- Microsoft Windows [Версия 6.0.6000]
Vista с SP1 Microsoft Windows [Версия 6.0.6001]
то можно так
FOR /f "TOKENS=*" %%i IN ('ver ^| FIND "Версия 5.1.2600"') DO GOTO XP_RU
FOR /f "TOKENS=*" %%i IN ('ver ^| FIND "Version 5.1.2600"') DO GOTO XP_EN
FOR /f "TOKENS=*" %%i IN ('ver ^| FIND "6.0.6000"') DO GOTO Vista
FOR /f "TOKENS=*" %%i IN ('ver ^| FIND "6.0.6001"') DO GOTO Vista
но чтото не очень нравится
какие есть еще варианты - более красивые
спасибо
Подскажите пожалуйста как удалить определенную папку с помощью батника (допустим c:\Test)
bmax
Код: for /f "tokens=*" %%c in ('dir "D:\1\*.*" /t:c /b /a:-d') do (
xcopy "D:\1\%%c" D:\2
goto :eof
)
Код: for /f "tokens=*" %%c in ('dir "D:\1\*.*" /t:c /b /a:-d') do (
xcopy "D:\1\%%c" D:\2
goto :eof
)
JohnRD
Что надо определить?
Виста, ХР, или 2000? или еще наличие SP
Вообще лучше искать только по номеру билда, не учитывая текстовые строки
ebrr
RD /?
Что надо определить?
Виста, ХР, или 2000? или еще наличие SP
Вообще лучше искать только по номеру билда, не учитывая текстовые строки
ebrr
RD /?
Вот такой вопрос вдруг встал - понадобилось менять раскладку клавиатуры при помощи батника. Можно? Через сендкейс, наверное...
KapralBel
нужно определить что за система, если виста то один батник пускать если ХР то другой
только и те и другие могут быть русские анклийские с СП без получается много GOTO
мне интересно или Виста или ХР и все
спасибо
нужно определить что за система, если виста то один батник пускать если ХР то другой
только и те и другие могут быть русские анклийские с СП без получается много GOTO
мне интересно или Виста или ХР и все
спасибо
Ilyansk
Цитата:
Прочитай внимательно мое сообщение. А также сообщение 01MDM, про которое я там пишу.
Цитата:
Для команды start, первое выражение в кавычках - это заголовок окна. За ним может идти вызов самой программы с ключами или ключи самого start-a.
Добавлено:
shva
Цитата:
ОК, перефразирую - подстановка переменных в строку, состоящую из несколькох команд, объедененных символом &, выполняется до запуска первой из этих команд.
Цитата:
в таком случае используется инструкция
Прочитай внимательно мое сообщение. А также сообщение 01MDM, про которое я там пишу.
Цитата:
поясните, плз, почему конструкция
start "" /max "%smailclient%" /nologo /mailu=....
не принимает высказывание /nologo за ключ, а в случае
start /max "%MAILER%" /nologo /BATCH:"%wd%rass.txt"
принимает?
Для команды start, первое выражение в кавычках - это заголовок окна. За ним может идти вызов самой программы с ключами или ключи самого start-a.
Добавлено:
shva
Цитата:
Тяжело воспринимается фраза "Строка выполняется как одна команда", ведь очевидно, что в строке две команды объединенные символом "&" !?
ОК, перефразирую - подстановка переменных в строку, состоящую из несколькох команд, объедененных символом &, выполняется до запуска первой из этих команд.
Rush
Цитата:
Да, vbs - он тебе ближе, как я понял. Или последний nircmd-2.10
C:\WINDOWS\system32\kb16.com - у меня не работает.
Цитата:
Можно? Через сендкейс, наверное...
Да, vbs - он тебе ближе, как я понял. Или последний nircmd-2.10
C:\WINDOWS\system32\kb16.com - у меня не работает.
KapralBel
king_stiven
Цитата:
Спасибо, а как отключить программу если она исполняется. Т.е. в папке Test есть определенный файл к примеру test.doc, если он выполняется (работает) то папка не удаляется. Как можно отключить выполнение данного файла (закрыть его) и удалить папку вместе с этим файлом?
king_stiven
Цитата:
rd c:\Test
Спасибо, а как отключить программу если она исполняется. Т.е. в папке Test есть определенный файл к примеру test.doc, если он выполняется (работает) то папка не удаляется. Как можно отключить выполнение данного файла (закрыть его) и удалить папку вместе с этим файлом?
01MDM
Цитата:
Ну это-то понятно. Я через батник думал. И без сторонних средств - это обязательно...
Ладно, попробую поискать в WMI, чтоб без сендкейса VBS...
Цитата:
Да, vbs - он тебе ближе, как я понял. Или последний nircmd-2.10
Ну это-то понятно. Я через батник думал. И без сторонних средств - это обязательно...
Ладно, попробую поискать в WMI, чтоб без сендкейса VBS...
JohnRD
Код: @Echo Off
FOR /f "TOKENS=*" %%i IN ('ver ^| FIND "5.1.26"') DO GOTO XP
FOR /f "TOKENS=*" %%i IN ('ver ^| FIND "5.2.37"') DO GOTO 2003
FOR /f "TOKENS=*" %%i IN ('ver ^| FIND "6.0.60"') DO GOTO Vista
GoTO :EOF
:XP
Echo XP
GoTO :EOF
:Vista
Echo Vista
GoTO :EOF
:2003
Echo 2003
GoTO :EOF
Код: @Echo Off
FOR /f "TOKENS=*" %%i IN ('ver ^| FIND "5.1.26"') DO GOTO XP
FOR /f "TOKENS=*" %%i IN ('ver ^| FIND "5.2.37"') DO GOTO 2003
FOR /f "TOKENS=*" %%i IN ('ver ^| FIND "6.0.60"') DO GOTO Vista
GoTO :EOF
:XP
Echo XP
GoTO :EOF
:Vista
Echo Vista
GoTO :EOF
:2003
Echo 2003
GoTO :EOF
Цитата:
Если нет ключа комм.строк, который завершает работу
TaskKill /?
Но нужно твердо знать, какая прога занимает файлы
Т.е. надо написать TaskKill/Word.exe?
А можно завершить выполнение именно фанного файла test.doc?
Благодарю king_stiven за ответ. Работает!
for /f "tokens=*" %%c in ('dir "D:\1\*.*" /t:c /b /a:-d') do (
xcopy "D:\1\%%c" D:\2
goto :eof
)
Еще вопросик, если позволите,
Как перед копированием посчитать количество файлов в папке D:\2 и при копировании
последнего созданного файла переименовывать его следующим образом:
11сегодняшняя дата(только число)кол-во файлов(если 1, то что бы записывалось 01 ) расширение тоже менялось
например: qwerty.txt -> 111601.dvc
Спасибо всем откликнувшимся!
for /f "tokens=*" %%c in ('dir "D:\1\*.*" /t:c /b /a:-d') do (
xcopy "D:\1\%%c" D:\2
goto :eof
)
Еще вопросик, если позволите,
Как перед копированием посчитать количество файлов в папке D:\2 и при копировании
последнего созданного файла переименовывать его следующим образом:
11сегодняшняя дата(только число)кол-во файлов(если 1, то что бы записывалось 01 ) расширение тоже менялось
например: qwerty.txt -> 111601.dvc
Спасибо всем откликнувшимся!
- Удалено автором (был не прав)
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
Предыдущая тема: Сброс пароля администратора
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.