Powershell 使用Get Date创建目录是否正在创建子文件夹?

Powershell 使用Get Date创建目录是否正在创建子文件夹?,powershell,Powershell,只是一个小问题,我可能遗漏了一些非常简单的东西 我设置了一个脚本,只是为了将几个文件夹作为更大脚本的一部分 我已尝试将其设置为,当脚本运行时,将创建一个新目录,其日期如下: $Date = ((Get-Date).ToShortDateString()) $CompileFolder = "C:\Registry_Export\PostInfection\$Date\Compiled Postinfection" New-Item -path $CompileFolder -ItemType D

只是一个小问题,我可能遗漏了一些非常简单的东西 我设置了一个脚本,只是为了将几个文件夹作为更大脚本的一部分
我已尝试将其设置为,当脚本运行时,将创建一个新目录,其日期如下:

$Date = ((Get-Date).ToShortDateString())
$CompileFolder = "C:\Registry_Export\PostInfection\$Date\Compiled Postinfection"
New-Item -path $CompileFolder -ItemType Directory
脚本按预期工作(以上部分仅为脚本的一部分)
然而,当目录被生成时,它们正在创建子目录,而不仅仅是一个目录

例如,2017年3月23日应创建一个名为2017年3月23日的文件夹
但是,它将文件夹结构设置为:

C:\Registry\u Export\PostInfection\23\03\2017\Compiled PostInfection
我知道这是因为日期而产生的,但是我想知道是否有一种简单的方法来纠正这一点


谢谢

/
在NTFS中是非法的文件名字符(扩展名也是非法的目录名字符)

我建议对日期字符串使用不同的分隔符,如
-
,或者干脆完全省略分隔符。要使用自定义格式,可以使用或
Get Date-format

# using hyphens (23-07-2017)
$Date = '{0:dd-MM-yyyy}' -f (Get-Date)

# using dots (23.07.2017)
$Date = (Get-Date).ToString('dd.MM.yyyy')

# using no separator (23072017)
$Date = Get-Date -Format ddMMyyyy
补充:

另一种说法是:任何
\
/
字符。在传递给
newitem的名称中,ItemType目录
被解释为分隔多个目录名的路径分隔符

通常考虑使用一个文化不变的、可排序的字符串格式,例如由ISO 8601标准提供的一种:

> (Get-Date -Format s) -replace 'T.*'
2017-03-23

-replace'T.*
部分只是切断了时间部分。

/
在NTFS中是非法的文件名字符(扩展名也是非法的目录名字符)。当你说“纠正”时,你是什么意思/想要/期望?啊,是的,为什么我没有想到我太专注于正在制作的目录。有什么办法我可以改变吗。因此2017年3月23日改为2017年3月23日参见我发布的答案
Get Date-Format“dd.MM.yyyyy”
谢谢,这是一个非常简单的解决问题的方法,你忘记了一些小事情