10分ごとに以下のスクリプトのようなものを実行します。PowerShellの 'if'ステートメントでLastWriteTimeを比較します。
私はファイルAとファイルBを持っています。10分ごとに、ファイルAがファイルBよりも新しいかどうかをチェックしたいと思います。もしそうならば、ファイルBのLastWriteTimeを現在の日付に設定します。 if
のステートメントが間違っていると思います...どうすれば修正できますか?私は上記の例では、私は現在の日付に変数$ bを設定していると思う
$a = Get-Item c:\users\testuser\desktop\test.xml | select LastWriteTime
$b = Get-Item C:\users\testuser\Desktop\test.swf | select LastWriteTime
if($a < $b)
{
$b.LastWriteTime = (Get-Date)
}
...私は、現在の日付に実際のファイルのLastWriteTimeを設定します。
ありがとう!...私はすでにこれを試してくださいでしたが、次のようになります。 "@ {LastWriteTime = 7/4/2016 3:54:43 PM}"を "@ {LastWriteTime = 7/4/2016 2:04:11 PM}"と比較することはできません。オブジェクトが同じタイプでないか、オブジェクト "@ {LastWriteTime = 7/4/2016 3:54:43 PM}"が "IComparable"を実装していません。ラインで :5文字:4 + IF($ -lt $ b)は{ + ~~~~~~~~~ + CategoryInfo:NotSpecified:(:) []、ExtendedTypeSystemException + FullyQualifiedErrorId:PSObjectCompareTo – gurpsone
私は答えを編集しました。 Get-Dateは日付をDatetimeに変換し、比較演算子を使用できます。 –
まだ動作しません: Get-Date:パラメータ 'Date'をバインドできません。値 "@ {LastWriteTime = 7/4/2016 3:54:43 PM}"を "System.DateTime"と入力できません。エラー: "タイプ" Selected.System.IO.FileInfo "の" @ {LastWriteTime = 7/4/2016 3:54:43 PM} "値を" System.DateTime "と変換できません。 (Get-Date $ a)-lt(Get-Date $ b)){ + ~~ + CategoryInfo:InvalidArgument :(:) [Get-Date]、ParameterBindingException + FullyQualifiedErrorId:CannotConvertArgumentNoMessage、Microsoft.PowerShell.Commands.GetDateCommand – gurpsone