Перенаправьте objShell.run с comspec и несколькими аргументами в файл при описании экземпляров ec2 в vbscript
Я боролся с этой проблемой в течение некоторого времени, и, похоже, никто на форумах или в Google не опубликовал что-то подобное, поэтому я постараюсь получить некоторую помощь здесь. Я описываю экземпляры ec2, используя vbs с несколькими аргументами, и использую константу для НЕ отображения окна командной строки. Скрипт работает, но вместо сохранения данных в выходной файл он сохраняет их в файл, который принимает значение outFile и добавляет несколько случайных чисел. Вот моя команда:
'objShell.Run "%COMSPEC% /c aws ec2 describe-instances --region " & region + " --filters " & Filters + " --profile " & ProfileName + " --query " & Query + " --output " & oFormat + ">>" & outFile & WindowStyleStealth, false _
поэтому перед этим кодом мой outFile = "cmdresult.txt" и сценарий записывают данные в cmdresult.txt546234895 - и я не могу понять, как перемещать ">>", чтобы он добавлялся в этот файл. Если я уберу WindowStyleStealth, false и просто уйду:
... outFile _
тогда это прекрасно работает, но я хочу использовать возможность скрывать окно командной строки, поэтому любая помощь очень ценится с этим. VBscripting не моя сильная сторона, так что это может быть еще одна причина, по которой я не могу понять это, но, надеюсь, у кого-то еще была похожая проблема.
Спасибо!
1 ответ
.Run принимает 3 аргумента, вы передаете 2:
... & oFormat + ">>" & outFile & WindowStyleStealth, false
Это объединяет WindowStyleStealth
в outFile
, Измените это на:
... & oFormat & ">>" & outFile, WindowStyleStealth, false
Обновление с комментарием:
Доказательства:
>> region = "REGION"
>> Filters = "FILTERS"
>> ProfileName = "PROFILENAME"
>> Query = "QUERY"
>> oFormat = "FORMAT"
>> outFile = "cmdresult.txt"
>> sCmd = "%COMSPEC% /c aws ec2 describe-instances --region " & region & " --filters " & Filters & " --profile" & ProfileName & " --query " & Query & " --output " & oFormat & ">>" & outFile
>> WScript.Echo sCmd
>>
%COMSPEC% /c aws ec2 describe-instances --region REGION --filters FILTERS --profile PROFILENAME --query QUERY --output FORMAT>>cmdresult.txt
>>
Опубликуйте свой код, если у вас все еще есть проблемы.