当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 星期五乐趣:有人真的知道现在几点了吗?

作者:精品下载站 日期:2024-12-14 07:40:54 浏览:15 分类:玩电脑

星期五乐趣:有人真的知道现在几点了吗?


[玩转系统] 星期五乐趣:有人真的知道现在几点了吗?

这些事情没有 cmdlet,因此您必须依赖一些 .NET 技术,但不用担心。您不必放弃成为 IT 专业人员。这些步骤非常简单,即使对您来说看起来有点陌生。首先,让我们获取一周中的第几天。它们很好地存储在名为 DayOftheWeek 的 .NET 类中,该类是一个枚举。这只是“列表”的一种奇特说法。以下是列出“列表”的方法。

PS C:\> [enum]::GetValues([dayofweek])
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday

很酷。我没有以不同语言运行 PowerShell 的系统,但我假设这些值将反映您的文化。据我所知,这应该适用于任何版本的 PowerShell。你能用这个做什么?也许您一周中的每一天都需要一个文件夹。

[enum]::GetValues([dayofweek]) | foreach {
  mkdir "c:\work$_"
}

我获取每个值并将其添加到 C:\Work 以创建相应的每日文件夹。接下来,让我们弄清楚如何处理月份名称。

不幸的是,没有月份名称的 Enum 类。但是,这些信息是与您的计算机文化相对应的全球化类别的一部分。这就是它对我的作用。

PS C:\> [System.Globalization.DateTimeFormatInfo]::CurrentInfo.MonthNames

January
February
March
April
May
June
July
August
September
October
November
December

同样,非英语系统应该有几个月的时间支持您的语言。这有一个小错误。由于某种原因,有一个神秘的没有名字的第 13 个月。


PS C:\> [System.Globalization.DateTimeFormatInfo]::CurrentInfo.MonthNames | measure

Count    : 13
Average  : 
Sum      : 
Maximum  : 
Minimum  : 
Property : 

要解决这个问题,只需过滤值即可。

[System.Globalization.DateTimeFormatInfo]::CurrentInfo.MonthNames | where {$_} 

我们也可以使用相同的技术来创建一组每月文件夹。


[System.Globalization.DateTimeFormatInfo]::CurrentInfo.MonthNames |
where { $_ } | foreach -begin { mkdir C:\Work14 } -process {
  mkdir "c:\work14$_"
}

我将每个月份的名称通过管道传递给 ForEach-Object。在开始脚本块中,我创建了一个顶级年份文件夹,并在进程脚本块中创建了每个月的文件夹。或者您可能希望避免使用硬编码值(例如 2014 年)或在文件夹名称中包含年份。


[System.Globalization.DateTimeFormatInfo]::CurrentInfo.MonthNames |
where { $_ } |
foreach -begin {$yr = (Get-Date).year} -process { mkdir "c:\work$_`_$yr" }

在这里,我在 Begin 块中获取当前年份,然后将其附加到文件夹名称中。如果我今天运行这个,我最终会得到一个类似 C:\Work\January_2013 的文件夹。请注意,因为我使用了下划线,所以我必须转义它。

最后,如果您喜欢缩短月份,也可以这样做。

[System.Globalization.DateTimeFormatInfo]::CurrentInfo.AbbreviatedMonthNames | 
where { $_ } |
foreach -begin {$yr = (Get-Date).year} -process { mkdir "c:\work$_`_$yr" }

这里你也必须过滤掉神秘的空月份。

因此,请提前计划明年,我希望这对您来说是美好的一年。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯