C:\ProgramData\\Windows\Profile\1.vbs».?
Она выскакивает постоянно
Ответы (5)
Появление ошибки Windows Script Host с сообщением «Не удается найти файл сценария…» обычно вызвано тем, что в списке автоматически загружаемых программ остался связанный с ранее установленной программой, файл VBS, который в настоящий момент отсутствует, так как он был удален сам по себе или вместе с программой.
Для того, чтобы отключить появление этого окна, воспользуйтесь программой Autoruns , размещенной на сайте Microsoft . Программа не требует установки. Загрузите программу и распакуйте файл Autoruns.zip в отдельную папку. Запустите Autoruns.exe от имени администратора и в окне программы найдите точки автозапуска выделенные желтым цветом. Точка автозапуска связанная с появлением сообщения «Не удается найти файл сценария» скорее всего является запланированным заданием и будет находится во вкладке » Sheduled Tasks «, но может находится и на других вкладках. Снимите отметку напротив такого элемента в списке выделенного желтым цветом, в результате сообщение «Не удается найти файл сценария…» больше появляться не будет.
Предупреждение . Не снимайте отметки с элементов автозапуска не выделенных желтым цветом и не удаляйте точки автозапуска из списка в Autoruns, в назначении котрых вы не уверены, при помощи клавиш DEL, Ctrl+D, а также при помощи контекстного меню или кнопки на панели инструментов программы. Элементы автозапуска в Autoruns удаляются безвозвратно и без возможности их последующего восстановления.
Урок 11 по VBScript: Функции vbs для работы с датой и временем
В этой статье мы рассмотрим функции vbs для работы с датой и временем. Они позволяют получать значение текущей даты и времени, включать таймер для вычисления времени, затраченного на выполнение заданного блока кода. Извлекать по отдельности значения часов, минут и секунд из времени, или значения год, месяц и день из даты.
Хорошо, давайте приступим.
Функции vbs для работы с датой и временем
Date – позволяет получить текущую дату (число, месяц и год).
DateAdd(iterval, number, date) – добавляет к заданной дате date заданный промежуток iterval:
interval — параметр определяет тип интервала, является строковой константой и может принимать следующие значения:
- yyyy — год;
- q — квартал;
- m — месяц;
- y — номер дня в году;
- d — день;
- w — номер дня в неделе;
- ww — номер недели в году;
- h — час;
- n — минута;
number – определяет число интервалов, параметр принимает как положительные, так и отрицательные значения. Если передано дробное число, то оно округлится.
DateDiff(interval, date1, date2[, firstdayofweek [, firstweekofyear]]) – позволяет получить значение временных интервалов (interval — параметр описан в функции vbs AddDate ). Аргументы date1, date2 – те даты, между которыми вычисляется разница. firstdayofweek – позволяет указать, с какого дня нужно считать начало недели, firstweekofyear — это константа, показывающая, какую неделю следует считать первой в году.
DatePart(interval, date [, firstdayofweek [, firstweekofyear]]) – возвращает указанную часть даты, например день, месяц и так далее.
DateValue(date) – в этой функции vbs происходит проверка на корректную дату.
Hour(time) – данная vbs функция позволяет извлечь значение часа из передаваемого параметра time. Возвращается целое число в диапазоне от 0 до 23.
Minute(time) – аналог Hour(), только вернёт число минут в диапазоне от 0 до 59.
Month(date) — выделяет номер месяца из даты, заданной параметром date. Возвращает целое число от 1 до 12.
MonthName(month [, abbr]) – позволяет получить наименование месяца. Параметр month – целое значение в диапазоне от 1 до 12 (номер месяца), параметр abbr – булево значение, если установлено true – краткий формат, если false – полный формат, по умолчанию — false.
Now – аналогично функции vbs Date, но помимо текущей даты возвращает и время.
Time – собственно, вернёт текущее системное время.
Timer – вернёт количество прошедших с полуночи секунд (точность до 1 миллисекунды, три знака после комы). Удобно использовать для вычисления времени, затраченного на выполнение блока кода.
TimeSerial(hour, minute, second) – вернёт тип Вариант подтипа Date с указанным временем, тут параметр hour – часы, диапазон от 0 до 23, minute – минуты, диапазон от 0 до 59, second – секунды, от 0 до 59. Если значение параметра превышает заданный предел, то это повлияет на следующий параметр.
TimeValue(time) — вернёт переменную подтипа Date, которая соответствует времени, заданному параметром time. Параметр time может содержать строку, литерал времени или тип Дата.
Weekday(date[, firstdayofweek]) — возвращает номер дня недели для даты, заданной параметром date. Параметр firstdayofweek — это константа, показывающая, какой из дней недели следует считать первым.
WeekdayName(weekday [, abbr[, firstdayofweek]]) — возвращает наименование для дня недели с порядковым номером weekday. Если логический параметр abbr равен true, то наименование дня недели представляется в виде аббревиатуры, в противном случае — в полном виде. Значение параметра firstdayofweek здесь то же, что и в функции Weekday.
Year(date) — выделяет год из даты, заданной параметром date, и возвращает это целое число.
Спасибо за внимание. Автор блога Владимир Баталий
Формат даты и времени в пакете Windows script
В пакете Windows (Windows XP) script Мне нужно отформатировать текущую дату и время для последующего использования в именах файлов и т.д.
Он похож на вопрос Как добавить дату в пакетных файлах, но со временем также.
У меня это до сих пор:
Есть ли способ, которым я могу разрешить одну цифру часа в% TIME%, поэтому я могу получить следующее?
Я закончил с этим script:
:: На WIN2008R2, например. Мне нужно было сделать ваш “установленный месяц =% даты:
3,2%”, как показано ниже: иначе появляется 00 для MONTH
Вот как я создаю имя файла журнала (на основе http://ss64.com/nt/syntax-getdate.html):
Если PowerShell установлен, вы можете легко и надежно получить дату/время в любом формате, который вам нужен, например:
Конечно, в настоящее время PowerShell всегда установлен, но в Windows XP вы, вероятно, захотите использовать этот метод, если ваша партия script используется в известной среде, где вы знаете, что PS доступен (или проверьте свою партию файл, если доступна PowerShell…)
Вы можете разумно спросить: зачем вообще использовать пакетный файл, если вы можете использовать PowerShell для получения даты/времени, но я думаю, что некоторые очевидные причины: (а) вы не все знакомы с PowerShell и по-прежнему предпочитаете делать большинство вещей старомодным способом с пакетными файлами или (б) вы обновляете старый script и не хотите переносить все на PS.
Я обычно делаю это так, когда мне нужна строка даты/времени:
Это для немецкого формата даты/времени (dd.mm.yyyy hh: mm: ss). В основном я конкатенирую подстроки и, наконец, заменяю все пространства нулями.
Краткое объяснение того, как работают подстроки:
Таким образом, чтобы получить только год с даты, например “29.03.2018”, используйте:
Сегодня я столкнулся с этой проблемой и решил ее:
Он заменяет пробелы 0s и в основном нулевые прокладки в час.
После некоторого быстрого поиска я не выяснил, нужны ли ему расширения команд (все еще работало с SETLOCAL DISABLEEXTENSIONS).
Как уже отмечалось, анализ даты и времени полезен только в том случае, если вы знаете формат, используемый текущим пользователем (например, MM/dd/yy или dd-MM-yyyy, чтобы назвать два). Это можно определить, но к тому моменту, когда вы сделаете все, что нужно, и проанализируйте, вы все равно столкнетесь с ситуацией, когда используется неожиданный формат, и вам потребуются дополнительные настройки.
Вы также можете использовать некоторую внешнюю программу, которая вернет пул дат в предпочтительном формате, но у этого есть недостатки, связанные с необходимостью распространять служебную программу с помощью script/batch.
Есть также пакетные трюки, использующие часы CMOS в довольно грубом виде, но это tooo близко к оголенным проводам для большинства людей, а также не всегда предпочтительное место для получения даты/времени.
Ниже приведено решение, позволяющее избежать вышеуказанных проблем. Да, это вводит некоторые другие проблемы, но для моих целей я нашел это самым простым и ясным, самым портативным решением для создания datestamp в .bat файлах для современных систем Windows. Это всего лишь пример, но я думаю, вы увидите, как изменить для других форматов даты и/или времени и т.д.
Следующий может быть не прямым ответом, а близким?
По крайней мере, это может вдохновить.
Если вам не нужен именно этот формат:
Затем вы можете использовать следующие 3 строки кода, в которых используются% date% и% time%:
Примечание. Символы / и : удаляются, а символ . и пробел заменяются символом подчеркивания.
Пример вывода (принято в среду 8/5/15 в 12:49 PM с 50 секундами и 93 миллисекундами):
Форматирование offset:length поддерживаемое командой SET в Windows, не позволит вам вставлять 0 как вам кажется, вас интересует.
Однако вы можете закодировать сценарий BATCH для проверки того, что час меньше 10 и
соответственно, с другой echo строкой.
Вы также можете перейти на другие методы программирования, чтобы попасть сюда.
Это довольно просто в unix bash (доступно с Cygwin на Windows), чтобы просто сказать:
И он всегда правильно накладывается.
Я сделал это следующим образом:
Вы можете сделать это намного проще:
echo% datetimef% return “
Первая строка преобразует дату/время в желаемый формат
а второй заменяет все пробелы на 0 (ноль).
Я действительно новичок в пакетных файлах, и это мой код! (Я не уверен, почему, но я не мог комбинировать дату/t и время/т вместе, и я не мог использовать % date% и % time% напрямую без переменной…)
Это отчасти повторное использование от других (вопрос состоял в том, чтобы получить отформатированное время для использования в качестве имени файла).
Первая строка всегда выводит в этом формате аспекты часового пояса:
20150515150941.077000 + 120
Это оставляет вам только форматирование вывода в соответствии с вашими пожеланиями.
Чтобы создать временную метку YYYY-MM-DD hh:mm:ss (24 часа), я использую:
Есть еще один простой способ сделать это:
Эта партия script сделает именно то, что хочет O.P. (протестировано в Windows XP SP3).
Я также использовал этот умный трюк реестра, описанный ранее “jph”, IMHO – это самый простой способ получить 100% -ное согласованное форматирование даты до «yyyy_MM_dd» в любой новой или старой системе Windows. Изменение одного значения реестра для этого является мгновенным временным и тривиальным; он длится всего несколько миллисекунд, прежде чем он будет немедленно возвращен обратно.
Дважды щелкните этот командный файл для мгновенной демонстрации, появится окно командной строки и отобразится метка времени.
Создайте файл под названием “search_files.bat” и поместите содержимое в файл. Затем дважды щелкните по нему. Временная переменная% THH% была введена в действие для надлежащего управления AM. Если в первые 2 цифры времени есть 0, Windows игнорирует остальную часть имени файла LOG.
Этот файл bat (save as datetimestr.bat) создает строку datetime 3 раза: (1) длинную строку даты и времени с днем недели и секундами,
(2) короткая строка datetime без них и
(3) короткая версия кода.
Чтобы отдать должное, я объединил концепции Питера Мортенсена (18-18 июня в 21:02) и opello (25 августа 2011 года в 14:27).
Вы можете написать это намного короче, но эта длинная версия упрощает чтение и понимание кода.
Мне нравится короткая версия поверх @The lorax,
но для других языковых настроек это может быть немного иначе.
Например, в настройках немецкого языка (с естественным форматом даты: dd.mm.yyyy) запрос месяца должен быть изменен с 4,2 до 3,2:
Это мои 2 цента за datetime string . В системах MM DD YYYY переключается первая и вторая записи %DATE:
Я попробовал принятый ответ, и он работает очень хорошо. К сожалению, формат времени США выглядит как H: MM: SS.CS, а недостающее 0 на фронте вызывает проблемы с анализом до 10 часов утра. Чтобы преодолеть это препятствие, а также разрешить разбор большинства форматов мирового времени, я придумал эту простую процедуру, которая, похоже, работает достаточно хорошо.
Хорошая вещь с этой подпрограммой заключается в том, что вы передаете строку времени в качестве первого параметра и имя переменной среды, в которую вы хотите указать время (в секундах) в качестве второго параметра. Например:
Возможно, что-то вроде этого:
В таких ситуациях используйте простой, стандартный подход к программированию:
Вместо того, чтобы тратить огромные усилия на анализ неизвестного объекта, просто сохраните текущую конфигурацию, reset в известном состоянии, извлеките информацию и затем восстановите исходное состояние. Используйте только стандартные ресурсы Windows.
В частности, форматы даты и времени хранятся в разделе реестра
HKCU\Control Panel\International\in [MS definition] “values”: “sTimeFormat” и “sSortTate”.
Reg – это редактор реестра консоли, входящий в состав всех версий Windows.
Для изменения ключа HKCU не требуются повышенные привилегии
Простой, понятный и должен работать во всех регионах.
По причинам, которые я не понимаю, сброс значения “sShortDate” вступает в силу немедленно
консольное окно, но сброс очень похожего значения “sTimeFormat” не вступает в силу
пока не откроется новое окно консоли. Однако единственным изменчивым является разделитель –
позиции цифр фиксированы. Точно так же токен времени “HH” должен предусматривать предшествующие нули, но это не так.
К счастью, обходные пути легки.
Разделите результаты команды date косой чертой, затем вы можете переместить каждый из токенов в соответствующие переменные.
Для очень простого решения для числовой даты для использования в именах файлов используйте следующий код:
Используйте REG для сохранения/изменения/восстановления того, что когда-либо значения наиболее полезны для вашего bat файла. Это окна 7, для других версий вам может понадобиться другое имя ключа.