Powershell从变量日期减去1天

时间:2016-09-08 01:42:30

标签: powershell

如何在powershell中使用包含日期的变量来表示get-date函数?我有一个包含2016-09-08的变量​​$ date。我想从$ date减去一天。类似的东西:

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

它不起作用。

5 个答案:

答案 0 :(得分:2)

单行转换和减法。

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

答案 1 :(得分:1)

“2016-09-08”是一个字符串。您需要将其转换为日期时间对象。有几种方法可以执行此操作,但下面是将字符串传递给Get-Date cmdlet的示例。

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

有关所有可用选项的详细信息,请参阅Custom Date and Time Format Strings

答案 2 :(得分:0)

您的变量是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

然后您可以开始使用您选择的格式。

答案 3 :(得分:0)

扩展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

答案 4 :(得分:0)

这个线程确实对我有很大帮助,这就是我想要做的。共享,以便其他人可以看到您可以使用Get-Date和AddDays做的更多事情。

CREA­TE INDE­X idx_1 ON publ­ic.t­ USIN­G btre­e (x)