如何通过SendTo快捷方式正确处理作为PowerShell脚本参数传递的文件名中的空格?

时间:2012-12-27 19:51:25

标签: powershell sendto

我编写了一个(非常)简单的脚本,它将当前日期附加到PowerShell中的给定文件名,然后我使用SendTo快捷方式设置它以便于访问。

但是,它不能很好地处理包含空格的文件名。如果文件名为“thisFile.txt”,则会正确添加日期,使其成为“thisFile.txt.20121227”,但如果文件名为“这个File.txt“它不能用我设置的SendTo快捷方式。

对于这两种类型的文件名,它在命令行中都能正常工作,但是我一直在试图找出原因。

这是我一直在使用的代码片段:

$enddate = (Get-Date).toString("yyyyMMdd")
$filename = $arg

foreach ($filename in $args) {
    Rename-Item $filename $filename"."$enddate
}

这是我设置的快捷方式的目标字段:

"%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe " -NonInteractive  -WindowStyle Hidden -NoProfile -noexit &"C:\Scripts\adddate.ps1"

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

您可能想要进行一些调试。

我打赌你的文件名用空格分成一个数组。

在for循环中,将$ filename变量的输出写入文件。您可能会发现需要在脚本中添加一些逻辑,说“嘿,这没有扩展!我需要在区域中添加更多项目,直到这是带扩展名的文件名!”,或者可能直到“test-path $ filename”返回true。