2017-03-01 3 views
0

私のPowerShellスクリプトをWindowsのタスクスケジューラに入れようとしているので、入力を必要とせずに月単位でExcelファイルを開くようにスケジュールできます。 「にで実行中のmはファイル名が更新された日付で毎月変わるということですので、どのように私は、正しいファイルを開くためのPowerShellスクリプトを持っているんpowershellが常に変更されているファイル名を開く

次のように私の現在のスクリプトは次のようになります。?

$objectExcel = new-object -c excel.application $objectExcel.displayAlerts=$false $objectExcel.visible=$FALSE $main=$objectExcel.workbooks.open("P:\report.xlsm")

レポートと呼ばれるxlsmファイルが開きます。

3月にレポートを更新すると、Report201702という名前に変更されます。 4月にレポートを更新すると、Report201703という名前に変更されます。

私はどのようにして自動的にファイル名にdateformatを追加するか、常に最新のファイルを取得できるように、PowerShellスクリプトを記述します。

答えて

1

ただ、最新のファイルが変数に名前を保存し、それを開く見つけ、

$report = "report{0}.xlsm" -f (Get-Date -format yyyyMM) 
1

代わりにカスタム書式では、Get-日付を使用しています。

$report = Get-ChildItem P:\*.xlsm | sort lastwritetime | select -Last 1 
$main = $objectExcel.workbooks.open($report.fullname) 
+0

ありがとうございます。明確にするために、これは正確に何をするのですか?具体的には、私がしたことがここにあります。これは正しいです? 申し訳ありませんが、私はスクリプト作成を初めて行っています。 セットexecutionpolicy remotesigned $ objectExcel =新しいオブジェクト-cまずExcel.Application $ objectExcel.displayAlerts = $ falseを $ objectExcel.visible = $ FALSE $レポート=は、Get-ChildItemコマンドレット「P:\データ要求\レポートの自動化 "\ *。xlsm |ソートlastwritetime | – semidevil

+0

'Set-executionpolicy'は永続的な設定であり、この設定は永続的なものではありません。スクリプトの中にいてください。テストのために '$ objectExcel.visible = $ FALSE'を削除してください。それ以外の場合は自分自身をテストする必要があります;-) – LotPings

+0

:)。ありがとう。私はBenHが提案したコードが何をしているか、スクリプトに正しく適用しているかどうかを知りたかったのです。 – semidevil

関連する問題