Если файла нет ошибка vbs

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's user avatar

John Saunders

160k26 gold badges247 silver badges397 bronze badges

asked Aug 23, 2011 at 13:26

Cocoa Dev's user avatar

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

Helge Klein's user avatar

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's user avatar

Đứ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

Martin Turjak's user avatar

answered Jun 5, 2013 at 20:29

allanw's user avatar

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's user avatar

user66001

7721 gold badge13 silver badges36 bronze badges

asked Jun 13, 2010 at 7:51

yael's user avatar

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()

Our Man in Bananas's user avatar

answered Jun 13, 2010 at 7:55

Sarfraz's user avatar

SarfrazSarfraz

376k77 gold badges531 silver badges578 bronze badges

1

Windows использует файлы сценариев для запуска множества программ в Windows. Многие из них настроены на запуск, при входе в систему на компьютере, в то время как другие могут запускаться по таймеру или после определенного события. Тем не менее, обычно сценарии, установленные в Windows, не дают сбоев, и есть вероятность, что какое-то вредоносное ПО установило сценарий для последующего запуска. Однако, поскольку он был удален с компьютера, например антивирусом, то появляется сообщение: «Не удается найти файл сценария» и при запуске Windows выдает ошибку.

Содержание

  1. Решение 1. Проверьте запись процесса Winlogon в реестре
  2. Решение 2. Исправьте запись .vbs скриптов в реестре
  3. Решение 3. Создайте пустой скрипт
  4. Решение 4. Выполните проверку системных файлов
  5. Решение 5. Запустите антивирусное сканирование

Решение 1. Проверьте запись процесса Winlogon в реестре

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

  1. Откройте редактор реестра, нажав Win+R набрав regedit в строке Выполнить и нажав клавишу Enter.
  2. Перейдите по следующему пути в редакторе:

    HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon

  3. Найдите строку Userinit и дважды щелкните ее, чтобы отредактировать.
  4. Значение по умолчанию для строки — «C:Windowssystem32userinit.exe», если есть что-то еще, то обязательно удалите остальные записи и нажмите кнопку ОК.

Выйдите из системы и войдите снова, чтобы проверить, исчезла ли ошибка.

Решение 2. Исправьте запись .vbs скриптов в реестре

Если вы получаете сообщение об ошибке Windows Script Host, вам необходимо установить значение по умолчанию для ключа vbs.

  1. Нажмите комбинацию клавиш WIN+R, чтобы запустить утилиту Выполнить, введите regedit и нажмите Enter.
  2. После открытия редактора реестра перейдите к следующему ключу:

    КомпьютерHKEY_CLASSES_ROOT.vbs

  3. Дважды щелкните строку (По умолчанию) и измените ее значение на VBSFile.

Решение 3. Создайте пустой скрипт

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

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

    Wscript.Quit

  3. Далее сохраните этот текстовый документ с названием Maintenance.vbs где Вам удобнее, например, на рабочем столе. Для этого откройте пункт меню Файл, выберите Сохранить как, а далее в строке Тип файла укажите Все файлы, тогда можно будет указать файлу расширение .vbs и нажмите Сохранить.
  4. Теперь перейдите к файлу .vbs на рабочем столе, щелкните на нем правой кнопкой мыши и выберите Копировать.
  5. Далее откройте Проводник и перейдите по пути указанному в ошибке: C:WindowsSystem32
  6. Теперь вставьте скопированный файл .vbs в папку System32, для этого щелкните правой кнопкой мыши в пустом месте и выберите Вставить в контекстном меню.

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

Решение 4. Выполните проверку системных файлов

Ещё один способ исправить ошибку заключается в запуске встренной утилиты System File Cheker (SFC) в Microsoft Windows для проверки системных файлов на их отсутствие или ошибки.

Для запуска SFC сделайте следующее:

  1. Нажмите правой кнопкой мыши на кнопке Пуск и в появившемся меню выберите Windows PowerShell (администратор).
  2. В появившемся окне Контроль учетных записей нажмите кнопку Да
  3. В окне Windows PowerShell введите команду:

    sfc /scannow

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

Решение 5. Запустите антивирусное сканирование

В любом случае, лучше проверить системный диск любым антивирусным решением или встроенным программным обеспечением Защитник Windows для сканирования и устранения проблемы. Также обязательно проверить ту папку, на которую указывает ошибка и в будующем стоит обратить внимание на недостаточную защиту компьютера от вирусов, так как он смог попасть на Ваше устройство.

Привет, сейчас речь пойдет об ошибке Windows Script Host «Не удается найти указанный файл», которая возникает в операционных системах Windows, а также мы разберем причины возникновения данной ошибки и что нужно делать, чтобы подобного рода ошибки не появлялись в будущем.

Чтобы сразу было понятно, о каких ошибках мы сейчас будем разговаривать, давайте посмотрим на окно с этой ошибкой.

Скриншот 1

Содержание

  1. Решение 1. Проверьте запись процесса Winlogon в реестре
  2. Решение 2. Исправьте запись .vbs скриптов в реестре
  3. Решение 3. Создайте пустой скрипт
  4. Решение 4. Выполните проверку системных файлов
  5. Решение 5. Запустите антивирусное сканирование

Решение 1. Проверьте запись процесса Winlogon в реестре

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

  1. Откройте редактор реестра, нажав Win+R набрав regedit в строке Выполнить и нажав клавишу Enter.
  2. Перейдите по следующему пути в редакторе:

    HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon

  3. Найдите строку Userinit и дважды щелкните ее, чтобы отредактировать.
  4. Значение по умолчанию для строки — «C:Windowssystem32userinit.exe», если есть что-то еще, то обязательно удалите остальные записи и нажмите кнопку ОК.

Выйдите из системы и войдите снова, чтобы проверить, исчезла ли ошибка.

Решение 2. Исправьте запись .vbs скриптов в реестре

Если вы получаете сообщение об ошибке Windows Script Host, вам необходимо установить значение по умолчанию для ключа vbs.

  1. Нажмите комбинацию клавиш WIN+R, чтобы запустить утилиту Выполнить, введите regedit и нажмите Enter.
  2. После открытия редактора реестра перейдите к следующему ключу:

    КомпьютерHKEY_CLASSES_ROOT.vbs

  3. Дважды щелкните строку (По умолчанию) и измените ее значение на VBSFile.

Решение 3. Создайте пустой скрипт

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

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

    Wscript.Quit

  3. Далее сохраните этот текстовый документ с названием Maintenance.vbs где Вам удобнее, например, на рабочем столе. Для этого откройте пункт меню Файл, выберите Сохранить как, а далее в строке Тип файла укажите Все файлы, тогда можно будет указать файлу расширение .vbs и нажмите Сохранить.
  4. Теперь перейдите к файлу .vbs на рабочем столе, щелкните на нем правой кнопкой мыши и выберите Копировать.
  5. Далее откройте Проводник и перейдите по пути указанному в ошибке: C:WindowsSystem32
  6. Теперь вставьте скопированный файл .vbs в папку System32, для этого щелкните правой кнопкой мыши в пустом месте и выберите Вставить в контекстном меню.

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

Решение 4. Выполните проверку системных файлов

Ещё один способ исправить ошибку заключается в запуске встренной утилиты System File Cheker (SFC) в Microsoft Windows для проверки системных файлов на их отсутствие или ошибки.

Для запуска SFC сделайте следующее:

  1. Нажмите правой кнопкой мыши на кнопке Пуск и в появившемся меню выберите Windows PowerShell (администратор).
  2. В появившемся окне Контроль учетных записей нажмите кнопку Да
  3. В окне Windows PowerShell введите команду:

    sfc /scannow

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

Решение 5. Запустите антивирусное сканирование

В любом случае, лучше проверить системный диск любым антивирусным решением или встроенным программным обеспечением Защитник Windows для сканирования и устранения проблемы. Также обязательно проверить ту папку, на которую указывает ошибка и в будующем стоит обратить внимание на недостаточную защиту компьютера от вирусов, так как он смог попасть на Ваше устройство.

Привет, сейчас речь пойдет об ошибке Windows Script Host «Не удается найти указанный файл», которая возникает в операционных системах Windows, а также мы разберем причины возникновения данной ошибки и что нужно делать, чтобы подобного рода ошибки не появлялись в будущем.

Чтобы сразу было понятно, о каких ошибках мы сейчас будем разговаривать, давайте посмотрим на окно с этой ошибкой.

Скриншот 1

Название и путь к файлу сценария могут быть разными, все зависит от фантазии разработчика, имя скрипта может быть простым, непонятным набором букв или замаскированным под системный файл, чтобы Вы подумали, что так оно и есть, в данном случае это — «C:ProgramDataSystemService.vbs». Операционная система в этом случае, скорей всего, нормально загружается, но бывает, что во время загрузки операционной системы появляется похожая ошибка и все, рабочий стол не запускается. Это относится к таким ошибкам как – «Не удается найти файл сценария C:Windowsrun.vbs».

Сегодня я покажу, как устранить ошибку в обоих случаях. Но сначала давайте поговорим о причинах возникновения этих ошибок.

Содержание

  1. Причины возникновения ошибки Windows Script Host «Не удается найти указанный файл»
  2. Что делать, чтобы такие ошибки не появлялись?
  3. Устранение ошибки, когда рабочий стол доступен
  4. Устранение ошибки, когда рабочий стол не запускается

Из информации, которая отображена в окне ошибки, мы понимаем, что система пытается запустить некий скрипт WSH (Windows Script Host), о том, что это такое, можете почитать в материале – «Основы языка JScript — написание WSH скриптов». При этом система не может его найти, это означает, что он был удален, перемещен, в общем, его нет. Теперь возникают вопросы, для чего нужен этот скрипт? И кем он был удален?

То, что данного скрипта больше нет, на самом деле неплохо, так как данный скрипт — это часть вируса, который был в Вашей системе, скорей всего его удалила антивирусная программа. В том, что вирус попал в систему, виноваты Вы, так как подобные вирусы заражают компьютер после определенных Ваших действий, например, Вы скачали музыку в формате exe и запустили данный файл или другие подобные действия, которые могут подвергать Ваш компьютер опасности (посещение сомнительных сайтов и скачивание таких же данных).

Примечание! Существуют и другие причины появления ошибок Windows Script Host, но они менее распространены, в данном материале речь идет именно об ошибках, связанных с вредоносными скриптами.

Что делать, чтобы такие ошибки не появлялись?

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

Что для этого нужно:

  • Наличие антивирусной программы с актуальными базами данных, т.е. она должна постоянно обновляться. Также необходимо периодически запускать полную проверку компьютера на наличие вирусов. Если не хотите платить за антивирус, можно использовать и бесплатные варианты, для домашнего компьютера они, на самом деле, не так плохи. Несколько лет назад в материале «Какой антивирус установить себе на домашний компьютер?» я рассматривал различные антивирусные решения и представил перечень продуктов, которые заслуживают внимания, основывался я на рейтингах, отзывах и на собственном опыте работы с антивирусами, поэтому если кому интересна эта информация, можете ознакомиться;
  • В большинстве случаев за компьютером работают от имени учетной записи с правами администратора. Но это неправильно, так как права администратора нужны только для выполнения административных задач, в некоторых случаях для Вас это может быть не очень удобно, но большинству вирусов, для того чтобы сделать то, для чего они были разработаны, нужны как раз права администратора. И если Вы работаете с правами администратора, то для вирусов это идеальные условия, так как они без проблем могут установить что-нибудь, изменить параметры системы и так далее. Поэтому рекомендуется работать от имени пользовательской учетной записи, а права администратора использовать при необходимости (Вам нужно просто создать отдельную пользовательскую учетную запись и работать от ее имени);
  • Не стоит посещать сомнительные сайты, скачивать файлы, формат которых не соответствуют своему назначению, например, как я уже говорил музыку в формате exe, как Вы понимаете, аудио файлов в таком формате быть не может. Это также относится и к играм, т.е. не нужно скачивать игры из непроверенных источников. Другими словами, данный пункт подразумевает быть немного осторожней, когда пользуетесь Интернетом и пытаетесь скачать какие-то данные.

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

Устранение ошибки, когда рабочий стол доступен

Если у Вас система загружается и потом появляется ошибка, т.е. Вы видите рабочий стол и меню пуск, то скорей всего скрипт вызывается планировщиком заданий Windows. Например, ошибка «Не удается найти файл сценария C:ProgramDataSystemService.vbs» — это последствия вируса, который как раз использовал планировщик для запуска скрипта. Существуют и другие способы запуска таких вредоносных скриптов, это и автозагрузка, и групповые политики, но они менее распространены, в автозагрузку сейчас, наверное, уже никто не помещает свои вредоносные программы или скрипты.

Итак, для того чтобы устранить ошибку нам нужно выяснить, как запускается скрипт, как я уже сказал, начинаем искать в планировщике заданий. Для этого запускаем его, нажимаем «Меню Пуск -> в поиске пишем Планировщик заданий»

Скриншот 2

Затем у нас возникает небольшая сложность, нам нужно найти задание, которое запускало скрипт и удалить его. Удалять все подряд не нужно, поэтому перед удалением убедитесь, что на вкладке «Действия» в строке запуск программы указан как раз тот путь, который нам показывает ошибка, т.е. в нашем случае это — «C:ProgramDataSystemService.vbs».

Скриншот 3

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

Скриншот 4

Курс по SQL для начинающих

Скриншот 5

Задание может располагаться в отдельном разделе, причем этот раздел может быть замаскирован под системный, но не совсем, например, раздел «Windowss», как видите, — в названии ошибка (две буквы s), поэтому сразу проверяйте этот каталог.

После того как Вы нашли нужное задание или задания можете смело удалять его, затем перезагружайтесь, после чего ошибка должна исчезнуть.

Если задание Вы не нашли, то можете проделать действия, которые описаны ниже (т.е. проверить реестр).

Устранение ошибки, когда рабочий стол не запускается

В данном случае Вы включаете компьютер, и у Вас появляется ошибка, рабочий стол при этом Вы не видите. К таким ошибкам можно отнести ошибку — «Не удается найти файл сценария C:Windowsrun.vbs».

В этом случае вирус поработал с реестром, а именно изменил параметры запуска системы.

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

  1. Нажимаем сочетание клавиш ctrl+alt+del;
  2. Выбираем пункт «Запустить диспетчер задач»;
  3. В меню нажимаем «Файл -> Новая задача (Выполнить…)»;
  4. В поле открыть вводим «explorer.exe».

После этого рабочий стол запустится.

Скриншот 6

Скриншот 7

Теперь запускаем редактор реестра. Для этого нажимаем «Пуск -> в поиск вводим regedit».

Скриншот 8

Затем находим раздел

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon для 32 разрядных систем

или

HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftWindows для 64 разрядных.

И проверяем параметры Shell и Userinit. Их значения должны равняться «explorer.exe» и «C:Windowssystem32userinit.exe,» соответственно.

Скриншот 9

Если значения другие, изменяйте их на значения по умолчанию, для этого просто вызовите окно изменения параметра (двойным кликом или правой кнопкой изменить) и введите нужное значение. Потом перезагружаетесь, и ошибка должна исчезнуть.

У меня на этом все, если Вы столкнулись с подобного рода ошибкой и устранили ее каким-то другим образом, поделитесь решением с другими в комментариях. Пока!

NIKOLAYY

841 / 736 / 342

Регистрация: 22.09.2012

Сообщений: 5,034

1

VBS

Проверка существования файла

30.05.2013, 18:13. Показов 13396. Ответов 6

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Нашел некий скрипт vbs удаляет файл-

Visual Basic
1
2
3
Set obj = CreateObject("Scripting.FileSystemObject") 
wscript.sleep 3000 'пауза
obj.DeleteFile("1.txt") 'удалить

Вопрос такой если нету этого файла ну ненайдет он то будет ошибка, можно ли как этот скрипт переписать чтоб без ошибок работал?
Ну типа проверки добавить есть такой файл 1.txt или нету а потом уже удалять?



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

30.05.2013, 18:13

6

Dragokas

Эксперт WindowsАвтор FAQ

18042 / 7645 / 891

Регистрация: 25.12.2011

Сообщений: 11,426

Записей в блоге: 17

30.05.2013, 20:06

2

Visual Basic
1
if obj.FileExists("1.txt") then obj.DeleteFile("1.txt")



3



NIKOLAYY

841 / 736 / 342

Регистрация: 22.09.2012

Сообщений: 5,034

31.05.2013, 20:49

 [ТС]

3

Цитата
Сообщение от Dragokas
Посмотреть сообщение

Visual Basic
1
if obj.FileExists("1.txt") then obj.DeleteFile("1.txt")

Всплывающее окно требуется обьект obj. пишет…



0



Эксперт WindowsАвтор FAQ

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

Строка перед запросом:

Visual Basic
1
On Error Resume Next

Для игнорирования ошибок



0



Эксперт WindowsАвтор FAQ

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?

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
On Error Resume Next
 
Class Try
  Private Sub Class_Initialize
    Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")
    objFSO.DeleteFile("1.txt")
  End Sub : Private Sub Catch : If Err.Number = 0 Then Exit Sub
    WScript.Echo "Error: 0x" & Hex(Err.Number) & Chr(32) & Err.Description
  Err.Clear : End Sub : Private Sub Class_Terminate : Catch
    Set objFSO = Nothing
  End Sub
End Class
Dim VBTry : Set VBTry = New Try : Set VBTry = Nothing



1



Like this post? Please share to your friends:
  • Если файл не txt то вывести ошибку
  • Если учитель сделал ошибку на уроке
  • Если учитель сам делает ошибки
  • Если учитель допустил ошибку во время урока
  • Если учитель делает грамматические ошибки