1

以下のコードを機能させるために、数日(数週間ではないにしても...)試しています。私が達成しようとしているのは、R スクリプトが毎日実行されることです (バッチ スクリプトと Windows Server 2008 64 ビットの Windows タスク スケジューラを介して)。その R スクリプトは、特定の Web サイトに移動し、ログインして [名前を付けて保存] ダイアログを呼び出し、完全なページを特定のパスに保存します。

RStudio 内の自分のマシン (Win 8 - 64 ビット) でスクリプトを実行すると、リモートで、Rscript.exe を介して動作しません。

問題は SaveAs.au3 スクリプトにあるようです - RStudio 経由またはファイル エクスプローラーから呼び出すと、完全に動作します。バッチ ファイル内で実行される同じ R スクリプト:

"C:\Program Files\R\R-3.2.3\bin\x64\Rscript.exe" "C:\JN\abc.R"

system() コマンドまで動作し、エラーや警告を表示せずにクラッシュします。

たぶん、同じような問題を抱えていて、助けてくれる人がいますか?ありがとう!

3 つの AutoIt スクリプトは次のとおりです。

SaveAs.au3 / exe

ControlFocus("[CLASS:MozillaWindowClass]", "", "")
ControlSend("[CLASS:MozillaWindowClass]", "", "", "^s")

EditName.au3は、R 内から可変的に書き込まれ、呼び出されます。

KeyEnter.aut3

ControlFocus("Save as", "", "")
ControlClick("Save as","","[CLASS:Button; INSTANCE:1]")

R スクリプトは次のようになります。

# compl is a vector of n href 

if(length(compl) != 0) {
  foreach(i=1:length(compl)) %do% {
    server_check() # checks whether selenium driver is still active and firefox window is open
    remDr$navigate(compl[i])
    Sys.sleep(10)
    login_check() # checks whether login is still active
    Sys.sleep(5)
    print(paste("attempt to save:",compl[i]))
    system('C:\\JN\\SaveAs.exe') # does not matter whether .exe or .au3
    Sys.sleep(3)
    system("cmd", input = c('echo ControlSetText("Save as", "", "[CLASS:Edit; INSTANCE:1]", "") > C:\\JN\\EditName.au3',
                            paste0('echo ControlSend("Save as", "", "[CLASS:Edit; INSTANCE:1]", "',
                                   gsub("/","_",gsub(website_url,"", compl[i])), ".htm",
                                   '") >> C:\\JN\\EditName.au3')))
    Sys.sleep(3)
    system('C:\\"Program Files (x86)"\\AutoIt3\\AutoIt3.exe C:\\JN\\EditName.au3')
    Sys.sleep(8)
    system('C:\\"Program Files (x86)"\\AutoIt3\\AutoIt3.exe C:\\JN\\KeyEnter.au3')
    Sys.sleep(30)
  }
}
print("Complete save end")
4

1 に答える 1