2016-01-25 4 views
1

Я очень новичок в Powershell. Я боролся с этим проектом. Я пытался получить и сохранить этот файл на своем компьютере. Я пытался различными способами и спросил на Stack OverflowКак сохранить файл Блокнота автоматически и закрыть Блокнот в Powershell

Когда я выполняю этот код

$ie = New-Object -ComObject 'internetExplorer.Application' 
$ie.Visible= $true 
$ie.Navigate("https://idp.appery.io/idp/") 

while ($ie.Busy -eq $true){Start-Sleep -seconds 1;} 

$usernamefield = $ie.Document.getElementByID('j_username') 
$usernamefield.value= $username 

$passwordfield = $ie.Document.getElementByID('j_password') 
$passwordfield.value = $password 

$Link=$ie.Document.getElementByID("loginBtn") 
$Link.click() 

while ($IE.Busy -eq $true) 

{ 

Start-Sleep -Milliseconds 2000; 

} 

$ie.Navigate("https://appery.io/bttttn/rest/1/admin/databases") 

Когда я исполню над кодом, Notepad автоматически выскочит, как «database.json», я искал где этот json-файл в моем диске C, но я не могу его найти. Это кажется просто открыть файл, так что я хотел бы

  1. Сохранить «database.json» в моей папке

  2. Закрыть Блокнот окна,

Как я могу это сделать ?

Большое вам спасибо!

+0

Измените ассоциации файлов. –

ответ

1

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

Намного лучше было бы использовать Invoke-WebRequest для входа, а затем загрузить файл

$request = Invoke-WebRequest $loginpage -SessionVariable "session" 
$form = $request.Forms[0] 
$form = $request.form['username'] 
$form = $request.form['password'] 
$request = Invoke-WebRequest -Uri ('$downloadlink + $form.Action) ` 
       -WebSession $session -Method POST ` 
       -Body $form.Fields -OutFile $filepath 

Если страница не возвращает объект формы, вы могли бы сделать

$form = @{ "username" = $username 
      "password = $password} 

Вам нужно будет посмотреть на странице входа в систему и извлечь имена переменных для имени пользователя/пароля.

Я также не тестировал его! поэтому его вид из памяти, но он должен получить вас на гораздо более надежном треке.

+0

Я сделал это, но это не сработает, http://stackoverflow.com/questions/34954584/powershell-invoke-webrequest-form-where-is-the-form – Kazu

+1

@ Kazu Я немного изменил ответ –

Смежные вопросы