I want to check to see if a file exists and if it does, I want to open it and read the 1st line,
If the file doesn’t exist or if the file has no contents then I want to fail silently without letting anyone know that an error occurred.
John Saunders
160k26 gold badges247 silver badges397 bronze badges
asked Aug 23, 2011 at 13:26
Cocoa DevCocoa Dev
9,33131 gold badges109 silver badges176 bronze badges
2
Start with this:
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FileExists(path)) Then
msg = path & " exists."
Else
msg = path & " doesn't exist."
End If
Taken from the documentation.
answered Aug 23, 2011 at 13:47
For anyone who is looking a way to watch a specific file to exist in VBS:
Function bIsFileDownloaded(strPath, timeout)
Dim FSO, fileIsDownloaded
set FSO = CreateObject("Scripting.FileSystemObject")
fileIsDownloaded = false
limit = DateAdd("s", timeout, Now)
Do While Now < limit
If FSO.FileExists(strPath) Then : fileIsDownloaded = True : Exit Do : End If
WScript.Sleep 1000
Loop
Set FSO = Nothing
bIsFileDownloaded = fileIsDownloaded
End Function
Usage:
FileName = "C:test.txt"
fileIsDownloaded = bIsFileDownloaded(FileName, 5) ' keep watching for 5 seconds
If fileIsDownloaded Then
WScript.Echo Now & " File is Downloaded: " & FileName
Else
WScript.Echo Now & " Timeout, file not found: " & FileName
End If
answered Feb 14, 2018 at 14:02
Đức Thanh NguyễnĐức Thanh Nguyễn
9,0473 gold badges21 silver badges27 bronze badges
an existing folder will FAIL with FileExists
Function FileExists(strFileName)
' Check if a file exists - returns True or False
use instead or in addition:
Function FolderExists(strFolderPath)
' Check if a path exists
answered Jun 5, 2013 at 20:29
1
How do I verify via VBScript if the file conf
exist under Program Files (i.e. C:Program Filesconf)?
For example if it exists, then msgBox "File exists"
If not, then msgbox "File doesn't exist"
user66001
7721 gold badge13 silver badges36 bronze badges
asked Jun 13, 2010 at 7:51
There is no built-in functionality in VBS for that, however, you can use the FileSystemObject FileExists function for that :
Option Explicit
DIM fso
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FileExists("C:Program Filesconf")) Then
WScript.Echo("File exists!")
WScript.Quit()
Else
WScript.Echo("File does not exist!")
End If
WScript.Quit()
answered Jun 13, 2010 at 7:55
SarfrazSarfraz
376k77 gold badges531 silver badges578 bronze badges
1
Windows использует файлы сценариев для запуска множества программ в Windows. Многие из них настроены на запуск, при входе в систему на компьютере, в то время как другие могут запускаться по таймеру или после определенного события. Тем не менее, обычно сценарии, установленные в Windows, не дают сбоев, и есть вероятность, что какое-то вредоносное ПО установило сценарий для последующего запуска. Однако, поскольку он был удален с компьютера, например антивирусом, то появляется сообщение: «Не удается найти файл сценария» и при запуске Windows выдает ошибку.
Содержание
- Решение 1. Проверьте запись процесса Winlogon в реестре
- Решение 2. Исправьте запись .vbs скриптов в реестре
- Решение 3. Создайте пустой скрипт
- Решение 4. Выполните проверку системных файлов
- Решение 5. Запустите антивирусное сканирование
Решение 1. Проверьте запись процесса Winlogon в реестре
Давайте проверим ситуацию, когда файл скрипта уже удален, к примеру, антивирусом, а запись в реестра ещё присутствует, которая и вызывает данную ошибку скрипта.
- Откройте редактор реестра, нажав Win+R набрав regedit в строке Выполнить и нажав клавишу Enter.
- Перейдите по следующему пути в редакторе:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon
- Найдите строку Userinit и дважды щелкните ее, чтобы отредактировать.
- Значение по умолчанию для строки — «C:Windowssystem32userinit.exe», если есть что-то еще, то обязательно удалите остальные записи и нажмите кнопку ОК.
Выйдите из системы и войдите снова, чтобы проверить, исчезла ли ошибка.
Решение 2. Исправьте запись .vbs скриптов в реестре
Если вы получаете сообщение об ошибке Windows Script Host, вам необходимо установить значение по умолчанию для ключа vbs.
- Нажмите комбинацию клавиш WIN+R, чтобы запустить утилиту Выполнить, введите regedit и нажмите Enter.
- После открытия редактора реестра перейдите к следующему ключу:
КомпьютерHKEY_CLASSES_ROOT.vbs
- Дважды щелкните строку (По умолчанию) и измените ее значение на VBSFile.
Решение 3. Создайте пустой скрипт
Если вы не можете найти, какая программа вызывает этот скрипт, и вы все перепробовали, попробуйте воссоздать файл-скрипт и посмотреть, решит ли это данную проблему. Приведем пример на ошибке, которая представлена на скриншоте, но так можно попробовать сделать с любым отсутствующим файлом-сценарием.
- Щелкните правой кнопкой мыши в любом месте области рабочего стола, выберите Создать в контекстном меню и нажмите Текстовый документ.
- В текстовом документе (блокноте) введите следующий текст:
Wscript.Quit
- Далее сохраните этот текстовый документ с названием Maintenance.vbs где Вам удобнее, например, на рабочем столе. Для этого откройте пункт меню Файл, выберите Сохранить как, а далее в строке Тип файла укажите Все файлы, тогда можно будет указать файлу расширение .vbs и нажмите Сохранить.
- Теперь перейдите к файлу .vbs на рабочем столе, щелкните на нем правой кнопкой мыши и выберите Копировать.
- Далее откройте Проводник и перейдите по пути указанному в ошибке: C:WindowsSystem32
- Теперь вставьте скопированный файл .vbs в папку System32, для этого щелкните правой кнопкой мыши в пустом месте и выберите Вставить в контекстном меню.
После проделанных манипуляций перезагрузите компьютер, если окно с ошибкой больше не повляется, значит данное решение помогло. Это решение можно пробовать с разными отсутствующими файлами сценариями.
Решение 4. Выполните проверку системных файлов
Ещё один способ исправить ошибку заключается в запуске встренной утилиты System File Cheker (SFC) в Microsoft Windows для проверки системных файлов на их отсутствие или ошибки.
Для запуска SFC сделайте следующее:
- Нажмите правой кнопкой мыши на кнопке Пуск и в появившемся меню выберите Windows PowerShell (администратор).
- В появившемся окне Контроль учетных записей нажмите кнопку Да
- В окне Windows PowerShell введите команду:
sfc /scannow
- Дождитесь окончания выполнения операции, если потребуется перезагрузите компьютер.
Решение 5. Запустите антивирусное сканирование
В любом случае, лучше проверить системный диск любым антивирусным решением или встроенным программным обеспечением Защитник Windows для сканирования и устранения проблемы. Также обязательно проверить ту папку, на которую указывает ошибка и в будующем стоит обратить внимание на недостаточную защиту компьютера от вирусов, так как он смог попасть на Ваше устройство.
Привет, сейчас речь пойдет об ошибке Windows Script Host «Не удается найти указанный файл», которая возникает в операционных системах Windows, а также мы разберем причины возникновения данной ошибки и что нужно делать, чтобы подобного рода ошибки не появлялись в будущем.
Чтобы сразу было понятно, о каких ошибках мы сейчас будем разговаривать, давайте посмотрим на окно с этой ошибкой.
Содержание
- Решение 1. Проверьте запись процесса Winlogon в реестре
- Решение 2. Исправьте запись .vbs скриптов в реестре
- Решение 3. Создайте пустой скрипт
- Решение 4. Выполните проверку системных файлов
- Решение 5. Запустите антивирусное сканирование
Решение 1. Проверьте запись процесса Winlogon в реестре
Давайте проверим ситуацию, когда файл скрипта уже удален, к примеру, антивирусом, а запись в реестра ещё присутствует, которая и вызывает данную ошибку скрипта.
- Откройте редактор реестра, нажав Win+R набрав regedit в строке Выполнить и нажав клавишу Enter.
- Перейдите по следующему пути в редакторе:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon
- Найдите строку Userinit и дважды щелкните ее, чтобы отредактировать.
- Значение по умолчанию для строки — «C:Windowssystem32userinit.exe», если есть что-то еще, то обязательно удалите остальные записи и нажмите кнопку ОК.
Выйдите из системы и войдите снова, чтобы проверить, исчезла ли ошибка.
Решение 2. Исправьте запись .vbs скриптов в реестре
Если вы получаете сообщение об ошибке Windows Script Host, вам необходимо установить значение по умолчанию для ключа vbs.
- Нажмите комбинацию клавиш WIN+R, чтобы запустить утилиту Выполнить, введите regedit и нажмите Enter.
- После открытия редактора реестра перейдите к следующему ключу:
КомпьютерHKEY_CLASSES_ROOT.vbs
- Дважды щелкните строку (По умолчанию) и измените ее значение на VBSFile.
Решение 3. Создайте пустой скрипт
Если вы не можете найти, какая программа вызывает этот скрипт, и вы все перепробовали, попробуйте воссоздать файл-скрипт и посмотреть, решит ли это данную проблему. Приведем пример на ошибке, которая представлена на скриншоте, но так можно попробовать сделать с любым отсутствующим файлом-сценарием.
- Щелкните правой кнопкой мыши в любом месте области рабочего стола, выберите Создать в контекстном меню и нажмите Текстовый документ.
- В текстовом документе (блокноте) введите следующий текст:
Wscript.Quit
- Далее сохраните этот текстовый документ с названием Maintenance.vbs где Вам удобнее, например, на рабочем столе. Для этого откройте пункт меню Файл, выберите Сохранить как, а далее в строке Тип файла укажите Все файлы, тогда можно будет указать файлу расширение .vbs и нажмите Сохранить.
- Теперь перейдите к файлу .vbs на рабочем столе, щелкните на нем правой кнопкой мыши и выберите Копировать.
- Далее откройте Проводник и перейдите по пути указанному в ошибке: C:WindowsSystem32
- Теперь вставьте скопированный файл .vbs в папку System32, для этого щелкните правой кнопкой мыши в пустом месте и выберите Вставить в контекстном меню.
После проделанных манипуляций перезагрузите компьютер, если окно с ошибкой больше не повляется, значит данное решение помогло. Это решение можно пробовать с разными отсутствующими файлами сценариями.
Решение 4. Выполните проверку системных файлов
Ещё один способ исправить ошибку заключается в запуске встренной утилиты System File Cheker (SFC) в Microsoft Windows для проверки системных файлов на их отсутствие или ошибки.
Для запуска SFC сделайте следующее:
- Нажмите правой кнопкой мыши на кнопке Пуск и в появившемся меню выберите Windows PowerShell (администратор).
- В появившемся окне Контроль учетных записей нажмите кнопку Да
- В окне Windows PowerShell введите команду:
sfc /scannow
- Дождитесь окончания выполнения операции, если потребуется перезагрузите компьютер.
Решение 5. Запустите антивирусное сканирование
В любом случае, лучше проверить системный диск любым антивирусным решением или встроенным программным обеспечением Защитник Windows для сканирования и устранения проблемы. Также обязательно проверить ту папку, на которую указывает ошибка и в будующем стоит обратить внимание на недостаточную защиту компьютера от вирусов, так как он смог попасть на Ваше устройство.
Привет, сейчас речь пойдет об ошибке Windows Script Host «Не удается найти указанный файл», которая возникает в операционных системах Windows, а также мы разберем причины возникновения данной ошибки и что нужно делать, чтобы подобного рода ошибки не появлялись в будущем.
Чтобы сразу было понятно, о каких ошибках мы сейчас будем разговаривать, давайте посмотрим на окно с этой ошибкой.
Название и путь к файлу сценария могут быть разными, все зависит от фантазии разработчика, имя скрипта может быть простым, непонятным набором букв или замаскированным под системный файл, чтобы Вы подумали, что так оно и есть, в данном случае это — «C:ProgramDataSystemService.vbs». Операционная система в этом случае, скорей всего, нормально загружается, но бывает, что во время загрузки операционной системы появляется похожая ошибка и все, рабочий стол не запускается. Это относится к таким ошибкам как – «Не удается найти файл сценария C:Windowsrun.vbs».
Сегодня я покажу, как устранить ошибку в обоих случаях. Но сначала давайте поговорим о причинах возникновения этих ошибок.
Содержание
- Причины возникновения ошибки Windows Script Host «Не удается найти указанный файл»
- Что делать, чтобы такие ошибки не появлялись?
- Устранение ошибки, когда рабочий стол доступен
- Устранение ошибки, когда рабочий стол не запускается
Из информации, которая отображена в окне ошибки, мы понимаем, что система пытается запустить некий скрипт WSH (Windows Script Host), о том, что это такое, можете почитать в материале – «Основы языка JScript — написание WSH скриптов». При этом система не может его найти, это означает, что он был удален, перемещен, в общем, его нет. Теперь возникают вопросы, для чего нужен этот скрипт? И кем он был удален?
То, что данного скрипта больше нет, на самом деле неплохо, так как данный скрипт — это часть вируса, который был в Вашей системе, скорей всего его удалила антивирусная программа. В том, что вирус попал в систему, виноваты Вы, так как подобные вирусы заражают компьютер после определенных Ваших действий, например, Вы скачали музыку в формате exe и запустили данный файл или другие подобные действия, которые могут подвергать Ваш компьютер опасности (посещение сомнительных сайтов и скачивание таких же данных).
Примечание! Существуют и другие причины появления ошибок Windows Script Host, но они менее распространены, в данном материале речь идет именно об ошибках, связанных с вредоносными скриптами.
Что делать, чтобы такие ошибки не появлялись?
Поскольку мы выяснили, что такая ошибка — это следствие нахождения вируса в системе, действия, которые необходимо делать, чтобы такие ошибки не появлялись, связаны с предотвращением заражения компьютера вирусами.
Что для этого нужно:
- Наличие антивирусной программы с актуальными базами данных, т.е. она должна постоянно обновляться. Также необходимо периодически запускать полную проверку компьютера на наличие вирусов. Если не хотите платить за антивирус, можно использовать и бесплатные варианты, для домашнего компьютера они, на самом деле, не так плохи. Несколько лет назад в материале «Какой антивирус установить себе на домашний компьютер?» я рассматривал различные антивирусные решения и представил перечень продуктов, которые заслуживают внимания, основывался я на рейтингах, отзывах и на собственном опыте работы с антивирусами, поэтому если кому интересна эта информация, можете ознакомиться;
- В большинстве случаев за компьютером работают от имени учетной записи с правами администратора. Но это неправильно, так как права администратора нужны только для выполнения административных задач, в некоторых случаях для Вас это может быть не очень удобно, но большинству вирусов, для того чтобы сделать то, для чего они были разработаны, нужны как раз права администратора. И если Вы работаете с правами администратора, то для вирусов это идеальные условия, так как они без проблем могут установить что-нибудь, изменить параметры системы и так далее. Поэтому рекомендуется работать от имени пользовательской учетной записи, а права администратора использовать при необходимости (Вам нужно просто создать отдельную пользовательскую учетную запись и работать от ее имени);
- Не стоит посещать сомнительные сайты, скачивать файлы, формат которых не соответствуют своему назначению, например, как я уже говорил музыку в формате exe, как Вы понимаете, аудио файлов в таком формате быть не может. Это также относится и к играм, т.е. не нужно скачивать игры из непроверенных источников. Другими словами, данный пункт подразумевает быть немного осторожней, когда пользуетесь Интернетом и пытаетесь скачать какие-то данные.
Если Вы будете выполнять хотя бы вышеперечисленные действия, то возможностей у вируса заразить Ваш компьютер будет намного меньше, и, соответственно, ошибки, которые мы рассматриваем в данной статье, появляться не будут.
Устранение ошибки, когда рабочий стол доступен
Если у Вас система загружается и потом появляется ошибка, т.е. Вы видите рабочий стол и меню пуск, то скорей всего скрипт вызывается планировщиком заданий Windows. Например, ошибка «Не удается найти файл сценария C:ProgramDataSystemService.vbs» — это последствия вируса, который как раз использовал планировщик для запуска скрипта. Существуют и другие способы запуска таких вредоносных скриптов, это и автозагрузка, и групповые политики, но они менее распространены, в автозагрузку сейчас, наверное, уже никто не помещает свои вредоносные программы или скрипты.
Итак, для того чтобы устранить ошибку нам нужно выяснить, как запускается скрипт, как я уже сказал, начинаем искать в планировщике заданий. Для этого запускаем его, нажимаем «Меню Пуск -> в поиске пишем Планировщик заданий»
Затем у нас возникает небольшая сложность, нам нужно найти задание, которое запускало скрипт и удалить его. Удалять все подряд не нужно, поэтому перед удалением убедитесь, что на вкладке «Действия» в строке запуск программы указан как раз тот путь, который нам показывает ошибка, т.е. в нашем случае это — «C:ProgramDataSystemService.vbs».
Советую сразу начать поиск с просмотра списка активных задач и истории запуска этих задач. Если журнал всех заданий выключен, то включите его и перезагрузитесь, затем после того как появится ошибка, снова зайдите в планировщик, где Вы сможете увидеть название последних выполненных задач.
Задание может располагаться в отдельном разделе, причем этот раздел может быть замаскирован под системный, но не совсем, например, раздел «Windowss», как видите, — в названии ошибка (две буквы s), поэтому сразу проверяйте этот каталог.
После того как Вы нашли нужное задание или задания можете смело удалять его, затем перезагружайтесь, после чего ошибка должна исчезнуть.
Если задание Вы не нашли, то можете проделать действия, которые описаны ниже (т.е. проверить реестр).
Устранение ошибки, когда рабочий стол не запускается
В данном случае Вы включаете компьютер, и у Вас появляется ошибка, рабочий стол при этом Вы не видите. К таким ошибкам можно отнести ошибку — «Не удается найти файл сценария C:Windowsrun.vbs».
В этом случае вирус поработал с реестром, а именно изменил параметры запуска системы.
Для того чтобы устранить данную ошибку, необходимо запустить редактор реестра и восстановить значения параметров по умолчанию. Давайте сначала запустим рабочий стол, для этого:
- Нажимаем сочетание клавиш ctrl+alt+del;
- Выбираем пункт «Запустить диспетчер задач»;
- В меню нажимаем «Файл -> Новая задача (Выполнить…)»;
- В поле открыть вводим «explorer.exe».
После этого рабочий стол запустится.
Теперь запускаем редактор реестра. Для этого нажимаем «Пуск -> в поиск вводим regedit».
Затем находим раздел
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon для 32 разрядных систем
или
HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftWindows для 64 разрядных.
И проверяем параметры Shell и Userinit. Их значения должны равняться «explorer.exe» и «C:Windowssystem32userinit.exe,» соответственно.
Если значения другие, изменяйте их на значения по умолчанию, для этого просто вызовите окно изменения параметра (двойным кликом или правой кнопкой изменить) и введите нужное значение. Потом перезагружаетесь, и ошибка должна исчезнуть.
У меня на этом все, если Вы столкнулись с подобного рода ошибкой и устранили ее каким-то другим образом, поделитесь решением с другими в комментариях. Пока!
NIKOLAYY 841 / 736 / 342 Регистрация: 22.09.2012 Сообщений: 5,034 |
||||
1 |
||||
VBS Проверка существования файла30.05.2013, 18:13. Показов 13396. Ответов 6 Метки нет (Все метки)
Нашел некий скрипт vbs удаляет файл-
Вопрос такой если нету этого файла ну ненайдет он то будет ошибка, можно ли как этот скрипт переписать чтоб без ошибок работал?
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
30.05.2013, 18:13 |
6 |
Dragokas 18042 / 7645 / 891 Регистрация: 25.12.2011 Сообщений: 11,426 Записей в блоге: 17 |
||||
30.05.2013, 20:06 |
2 |
|||
3 |
NIKOLAYY 841 / 736 / 342 Регистрация: 22.09.2012 Сообщений: 5,034 |
||||
31.05.2013, 20:49 [ТС] |
3 |
|||
Всплывающее окно требуется обьект obj. пишет…
0 |
18042 / 7645 / 891 Регистрация: 25.12.2011 Сообщений: 11,426 Записей в блоге: 17 |
|
31.05.2013, 20:57 |
4 |
NIKOLAYY,
1 |
webdiez 1 / 1 / 0 Регистрация: 07.10.2014 Сообщений: 9 |
||||
04.12.2015, 13:33 |
5 |
|||
Строка перед запросом:
Для игнорирования ошибок
0 |
18042 / 7645 / 891 Регистрация: 25.12.2011 Сообщений: 11,426 Записей в блоге: 17 |
|
04.12.2015, 13:34 |
6 |
Зачем их игнорировать?
0 |
greg zakharov Нарушитель 5776 / 1434 / 350 Регистрация: 07.05.2015 Сообщений: 2,822 |
||||
04.12.2015, 16:14 |
7 |
|||
Как на счет эмуляции Try..Catch..Finally?
1 |