Нет проблем с findstr ..
Запустите этот код, который совпадает с вашим, но с wscript.echo "WAIT" непосредственно перед строкой findstr.Теперь, когда эта wscript.echo строка «WAIT» выполнена, откройте файл, вы, вероятно, увидите, что он не содержит отключенных файлов, теперь запись отключена и сохраните его.Затем нажмите кнопку ОК, чтобы получить сообщение «Подождите»И программа продолжается.
Я получаю правильный результат по уровню ошибки, возвращенному командой findstr.То есть
1, когда он не содержит отключенных
0, когда он делает
. Вы также можете попробовать ради устранения неполадок, чтобы программа упростила поиск ошибки.Таким образом, вы можете попробовать удалить эту строку, чтобы проверить findstr, тогда вы, возможно, обнаружили, что findstr в порядке.Просмотр файла непосредственно перед findstr и внесение в него изменений вручную также показывает, что не нужно удалять эту строку.
Я также попытался изменить Return to Retur, потому что подумал, что Return - это ключевое слово, и поэтому не будетвполне работает, но работает нормально с именем переменной Return, которое вы использовали.
Так что проблема в
WshShell.Run "%comspec% /C devcon status PCI\VEN_168C > C:\devstat.txt", 0, false
, но findstr в порядке.И я думаю, что вы были правы использовать True в качестве третьего параметра в
WshShell.Run ("findstr xbc C: \ getmail \ aa", 0, true)
, начиная с script56.chmдокументация "Если установлено значение true, выполнение скрипта приостанавливается до завершения программы, и Run возвращает любой код ошибки, возвращенный программой. Если установлено значение false (по умолчанию), метод Run возвращается сразу после запуска программы, автоматически возвращая 0 (не должен интерпретироваться как код ошибки). "
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "%comspec% /C devcon status PCI\VEN_168C > C:\devstat.txt",
0, false
wscript.echo "WAIT"
Return = WshShell.Run("findstr disabled C:\devstat.txt", 0, true)
WScript.Echo Return
If Return = 0 Then
WshShell.Run "devcon " & "enable PCI\VEN_168C", 0, false
Else
WshShell.Run "devcon " & "disable PCI\VEN_168C", 0, false
End If