相关疑难解决方法(0)

如何将多个参数传递到PowerShell中的函数?

如果我有一个接受多个字符串参数的函数,则第一个参数似乎获取分配给它的所有数据,其余参数作为空传入.

快速测试脚本:

Function Test([string]$arg1, [string]$arg2)
{
    Write-Host "`$arg1 value: $arg1"
    Write-Host "`$arg2 value: $arg2"
}

Test("ABC", "DEF")
Run Code Online (Sandbox Code Playgroud)

生成的输出是

$arg1 value: ABC DEF
$arg2 value: 
Run Code Online (Sandbox Code Playgroud)

正确的输出应该是:

$arg1 value: ABC
$arg2 value: DEF
Run Code Online (Sandbox Code Playgroud)

这似乎在多台机器上的v1和v2之间是一致的,所以很明显,我做错了.任何人都可以指出究竟是什么?

powershell

406
推荐指数
11
解决办法
55万
查看次数

文件IO,这是Powershell中的一个错误吗?

我在Powershell中有以下代码

$filePath = "C:\my\programming\Powershell\output.test.txt"

try
{
    $wStream = new-object IO.FileStream $filePath, [System.IO.FileMode]::Append, [IO.FileAccess]::Write, [IO.FileShare]::Read

    $sWriter = New-Object  System.IO.StreamWriter $wStream

    $sWriter.writeLine("test")
 }
Run Code Online (Sandbox Code Playgroud)

我一直收到错误:

无法转换参数"1",值为:"[IO.FileMode] :: Append","FileStream"键入"System.IO.FileMode":"无法转换值"[IO.FileMode] :: Append"to键入"System.IO.FileMode",因为枚举值无效.请指定以下枚举值之一,然后重试.可能的枚举值为"CreateNew,Create,Open,OpenOrCreate,Truncate,Append"."

我试过C#中的等价物,

    FileStream fStream = null;
    StreamWriter stWriter = null;

    try
    {
        fStream = new FileStream(@"C:\my\programming\Powershell\output.txt", FileMode.Append, FileAccess.Write, FileShare.Read);
        stWriter = new StreamWriter(fStream);
        stWriter.WriteLine("hahha");
    }
Run Code Online (Sandbox Code Playgroud)

它工作正常!

我的powershell脚本出了什么问题?顺便说一下,我在PowerShell上运行

Major  Minor  Build  Revision
-----  -----  -----  --------
3      2      0      2237
Run Code Online (Sandbox Code Playgroud)

powershell filestream

9
推荐指数
3
解决办法
3万
查看次数

标签 统计

powershell ×2

filestream ×1