ソフトウェアアップデートを自動的にインストールするスクリプトを作成しようとしています。既知のディレクトリに作成され、独自のフォルダを持つ定期的に新しいソフトウェアビルドがあります。 RスクリプトやRスクリプトで実行できるバッチファイルでは、過去24時間以内に新しいビルドが作成されたかどうかを確認するスクリプトを書いています。私は、Windowsエクスプローラでそのチェックを行うために "Date modified"カラムを使用する方法があるのだろうかと思っていました。したがって、今日が06/27/2016の場合、スクリプトは「現在の日付」 - 24時間後に「日付が変更された」フォルダを探します。その後、そのフォルダに移動して実行可能ファイルを実行し、自動インストールします。最新のソフトウェアビルドを自動的にインストールするRスクリプトまたはバッチファイル
これは実現可能ですか?
EDIT:r2evansは私の質問のほとんどに非常に徹底的な回答を提供しましたが、これがどれほど私をもたらしているかを示すために更新したいと思っていました。
これは私が彼の答えを実装した方法です。
path <- "//Path/to/Folders/"
df <- file.info(list.files(path, full.names = TRUE))
df <- rownames(df)[ df$mtime > Sys.time() - 60*60*24 ]
私が探していたファイルが1つだけあれば、これは完全に機能します。しかし、実行可能ファイル(.msi
)を持つ一連のサブディレクトリを分析する必要があります。だから、dfを最後の24時間で何が変わったのかを調べるために修正した後にdfを印刷すると、それは私にフォルダの名前だけを与えます。
//Path/to/Folders/FolderName
私は、ファイルを実行するためにShell
代わりのsystem2
を使用して考えていました。 shell(paste(shQuote("\\\\SERVER\\d$SERVER\\Path\\to\\the\\folder\\dffolderName\\*")), "cmd")
しかし、これは、このエラーを与えた:
CMD.EXE was started with the above path as the current directory.
UNC paths are not supported. Defaulting to Windows directory.
The network name cannot be found.
Warning messages:
1: running command 'cmd /c "\\SERVER\d$\SERVER\Path\to\dffolderName\*"' had status 1
2: In shell(paste(shQuote("\\\\SERVER\\d$SERVER\\Path\\to\\the\\folder\\dffolderName\\*")), :
'"\\SERVER\d$\SERVER\Path\to\dffolderName\*"' execution failed with error code 1
また、重要なのは、どのように私はして追加することになり、私はこのようにそれを実装しようとしたshell(paste(shQuote("\\\\SERVER\\d$SERVER\\Path\\to\\the\\folder\\file.bat")), "cmd")
:私はこのようなシェルを使用して私の完全なスクリプトで、いくつかのバッチファイルを実行しますdf
をShell
に変更すると、そのパスは可変になりますか?
EDIT 2:私のシェルのcmdラインの実例です。
実行するテストバッチファイルを作成しました。このバッチファイルは、Rスクリプトで実行されている関連するすべての処理(つまり、リモートサーバーで変数を取得して実行する)を行う必要があります。その後
@ECHO off
set var1=%1
set var2=%2
ECHO %var1%
ECHO %var2%
ECHO This batch file is working
pause
このRスクリプトを試してみてください。
var1 <- 1
var2 <- 2
shell(paste(shQuote("\\\\SERVER\\d$\\SERVER\\Path\\To\\the\\File\\TestBat.bat"), var1, var2), "cmd")
私はRが大好きですので、間違ってはいけません...しかし、なぜこの仕事にRを使いたいのですか? – Dason
私はする必要はありません。しかし、私はRを使ってこのソフトウェアのデータを収集し分析するためのスクリプトを実行しているので、より便利になります。最終的には、このスクリプトをタスクスケジューラに追加して座って、そのスクリプトを実行させたいと考えています。 – David
@Dasonだから、私はRスクリプトの中でそれを実行するだけなのでバッチファイルを使用しても構いません。 – David