Shell 如何在路径中包含变量?

Shell 如何在路径中包含变量?,shell,powershell,path,Shell,Powershell,Path,我正在尝试创建一个名为creation_DDMMYYYY的文件,其中ddmmyyy是当前日期。路径tho上出现错误的路径格式错误 $nowDate=$(date) New-Item -ItemType file "$HOME/creation_$nowDate.txt" 由于我刚刚开始使用Powershell,我真的不知道这里有什么问题…因为您在nowDate中只使用$date,路径不正确,因为它包含空格(文件夹名称不能包含空格),并且完全不是您想要的格式 只需更改nowDate即可获得正确

我正在尝试创建一个名为creation_DDMMYYYY的文件,其中ddmmyyy是当前日期。路径tho上出现错误的路径格式错误

$nowDate=$(date)
New-Item -ItemType file "$HOME/creation_$nowDate.txt" 

由于我刚刚开始使用Powershell,我真的不知道这里有什么问题…

因为您在
nowDate
中只使用
$date
,路径不正确,因为它包含空格(文件夹名称不能包含空格),并且完全不是您想要的格式

只需更改
nowDate
即可获得正确的日期格式,它将起作用:

$nowDate = Get-Date -Format ddMMyyyy
New-Item -ItemType file "$HOME/creation_$nowDate.txt"
# Result:
Folder Properties...        Name
                            ----
                            creation_02062019.txt

PoSh不知道
.txt
是文件名的一部分。它认为您谈论的是
$nowDate.txt
[具有属性的对象],而不是
($nowDate.txt
)。。。[咧嘴笑]这很有道理。但是
newitem-ItemType文件“$HOME/creation.$nowDate.txt”
仍然输出相同的错误。我总是使用国际的可排序格式
ni(“creation.{0:yyyyymmdd}.txt”-f(get date))
@adriandalos-arg![脸红]我没有注意到您没有定义日期格式。您似乎正在使用datetime对象,而这在字符串中是不起作用的。看看LotPings发布了什么。这似乎解决了您的问题。
“$nowDate”
可能包含文件系统名称中不允许的字符,如
/
。使用类似于
$($nowDate.ToString('yyyy-MM-dd'))的内容