函数提示Add-Content的值并将.txt文件视为目录

时间:2016-10-18 19:40:04

标签: powershell user-defined-functions powershell-v4.0

我正在编写用于创建错误状态文件的PowerShell脚本。我需要的信息在全局变量($info)中定义,并返回我需要的正确字符串。类型为System.String

function Add-Fail
{
    $date = Get-Date -f "yyyy-MM-dd"
    Add-Content \\Path\To\FailMonitor\${date}.txt $info
}

我也试过传递这样的变量:

function Add-Fail ($info)
{
    $date = Get-Date -f "yyyy-MM-dd"
    Add-Content \\Path\To\FailMonitor\${date}.txt $info
}

并调用它,其中info是一个字符串:

    Add-Fail($info)

和这个

    Add-Fail -info $info

对于这两种情况,我得到的是相同的输出,它要求一个值。如果我输入值,它会一直提示我输入无限数组中的下一个值。如果我没有输入一个并且只是点击输入,则会给我一个没有信息的错误,甚至在完整错误的行号上引用我的Add-Content行。

输出(编辑后的用户名):

cmdlet Add-Content at command pipeline position 1
Supply values for the following parameters:
Value[0]: 1
Value[1]: 2
Value[2]: 
Add-Content : The filename, directory name, or volume label syntax is incorrect.
At C:\Users\********\Documents\Workspace\Error_Monitor.ps1:40 char:5
+     Add-Content \\nserver\scsi\HPQ\FailMonitor\$date\
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : WriteError: (\\nserver\scsi\...tor\2016-10-18\:String) [Add-Content], IOException
    + FullyQualifiedErrorId : GetContentWriterIOError,Microsoft.PowerShell.Commands.AddContentCommand

如您所见,它将我的日期称为目录。作为参考,我的Add-Content表达式位于第45行,即char 5.它将我的.txt文件视为目录并将其视为目录。文本文件根本不是目录。因为我已经清除了变量,所以它不是一个变量问题。我也没有在约会时试过任何括号,但那也没有。

为什么PowerShell表现得像这样?我错过了什么?

0 个答案:

没有答案