2

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

但是,它不能很好地处理带有空格的文件名。如果文件名是“thisFile.txt”,它会正确添加日期,使其“thisFile.txt.20121227”,但如果文件名是“this 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"
4

2 回答 2

1

使用开关而不是脚本路径前面的与号 () 应该可以解决您的问题-f&

于 2012-12-27T21:27:14.850 回答
0

您可能想做一些调试。

我敢打赌,您带有空格的文件名将被拆分为一个数组。

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

于 2012-12-27T20:40:48.977 回答