Powershell 逃避正向斜线问题

Powershell 逃避正向斜线问题,powershell,Powershell,在下面的半伪代码中,数组$system中第一个元素的正斜杠总是作为反斜杠读取 我尝试了各种转义字符,例如“和\但没有效果。这是PowerShell中的已知问题吗?如何解决 $system = @("Something/Anything", "Super Development","Quality Assurance") //the following is looped with $y $string| ConvertTo-json | FT | Out-File -append C:\Tes

在下面的半伪代码中,数组
$system
中第一个元素的正斜杠总是作为反斜杠读取

我尝试了各种转义字符,例如“和\但没有效果。这是PowerShell中的已知问题吗?如何解决

$system = @("Something/Anything", "Super Development","Quality Assurance")

//the following is looped with $y
$string| ConvertTo-json | FT | Out-File -append C:\Test\Results\$($system[$y])_All.csv

//error:
Message        : Could not find a part of the path 'C:\Test\Results\Something\Anything_All.csv'
正如您问题的评论中已经提到的,Windows上有几个文件名/路径不能使用,即:

  • 使用当前代码页中的任何字符作为名称,包括Unicode字符和扩展字符集(128–255)中的字符,但以下字符除外:

    以下保留字符:

    • (大于)
    • (冒号)
    • (双引号)
    • /
      (正斜杠)
    • \
      (反斜杠)
    • |
      (竖条或管道)
    • (问号)
    • *
      (星号)
这些字符不能转义,只能替换。您可以使用该方法以编程方式确定需要替换的字符:

$invalid = [regex]::Escape([IO.Path]::GetInvalidFileNameChars())
$string | ConvertTo-json | FT |
  Out-File -Append C:\Test\Results\$($something[$y] -replace $invalid, '_')_All.csv
正如您问题的评论中已经提到的,Windows上有几个文件名/路径不能使用,即:

  • 使用当前代码页中的任何字符作为名称,包括Unicode字符和扩展字符集(128–255)中的字符,但以下字符除外:

    以下保留字符:

    • (大于)
    • (冒号)
    • (双引号)
    • /
      (正斜杠)
    • \
      (反斜杠)
    • |
      (竖条或管道)
    • (问号)
    • *
      (星号)
这些字符不能转义,只能替换。您可以使用该方法以编程方式确定需要替换的字符:

$invalid = [regex]::Escape([IO.Path]::GetInvalidFileNameChars())
$string | ConvertTo-json | FT |
  Out-File -Append C:\Test\Results\$($something[$y] -replace $invalid, '_')_All.csv

在Windows中,不能在文件命名中使用“/”
$something[$y]
似乎无法为我解决任何问题
$something='test-'foreach($system中的y){$something[$y]}
@HiteshDhruna抱歉,输入错误。修复了Windows中文件命名中不能使用“/”的问题
$something[$y]
似乎无法为我解决任何问题
$something='test-'foreach($system中的y){$something[$y]}
@HiteshDhruna抱歉,输入错误。修正了我删除的问题Ansgar的提示。我没有注意到这些都是CSV的名字…谢谢你对我删除的问题Ansgar的提示。我没有注意到这些都是CSV的名字。。。