簡體   English   中英

Powershell從可變日期減去1天

[英]Powershell Subtract 1 day from variable date

如何在Powershell中使用包含日期的變量來充當get-date函數? 我有一個包含2016-09-08的變量​​$ date。 我想從$ date減去一天。 就像是:

$date = "2016-09-08"
$date.AddDays(-1)

沒用

“ 2016-09-08”是一個字符串。 您需要將其轉換為日期時間對象。 有幾種方法可以這樣做,但是下面是將字符串傳遞到Get-Date cmdlet的示例。

$date = Get-Date "2016-09-08"
$date.AddDays(-1).ToString("yyyy-MM-dd")

有關所有可用選項的更多詳細信息,請參見自定義日期和時間格式字符串

單行轉換和減法。

(Get-Date $date).AddDays(-1)

您的變量是String。 運行$date.gettype()它將輸出字符串。

$date = "2016-09-08"
$date.gettype()
IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     String                                   System.Object

為了能夠使用日期時間函數,您需要一個日期時間變量。

$date = get-date("2016-09-08")
$date.gettype()
  IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     Datetime                                   System.Object
$date.adddays(-1)
Wednesday, September 7, 2016 12:00:00 AM

那么您就可以開始使用自己選擇的格式了。

擴展Mani Live的答案...以在常規批處理文件中使用:

for /F "usebackq" %%d in (`powershell -STA -ExecutionPolicy ByPass -command "echo ((Get-Date).AddDays(-10)).ToString(\"yyyy-MM-dd\")"`) do set ten_days_ago=%%d

這個線程確實對我有很大幫助,這就是我想要做的。 共享,以便其他人可以看到您可以使用Get-Date和AddDays做的更多事情。

PS C:\Users\zzz> (Get-Date $date).AddDays(0).ToString("MMddyyyy")
07162019

PS C:\Users\zzz> (Get-Date $date).AddDays(-1).ToString("MMddyyyy")
07152019

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM