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”
谢谢,这是一个非常简单的解决问题的方法,你忘记了一些小事情