首页 > 解决方案 > 仅当路径有空格时,使用 Raw 非参数获取内容错误

问题描述

所有代码都有效,除非我在可能的路径中有空格,如果出现空格,则路径有双引号。下面是导致错误的代码,例如“C:\Test Debug\Test.txt”。
错误:找不到与参数名称“原始”匹配的参数。

function TurnOffDebug($path){
  try {
      $Content = (Get-Content -Path ($path) -Raw)   -replace "Debug=-1","Debug=0"
      Set-Content -path ($path) -Value $Content -NoNewline
      return $true
  }catch {
      Write-Host $_
      $dateVersion = Get-Date -Format "dd/MM/yyyy HH:mm:ss"
      $logEntry = "$($dateVersion)- Could not set version - $($path)"
      LogWrite $logEntry
      return $false
  }

}

标签: powershell

解决方案


即使 -LiteralPath 不适用于 -Raw
https://github.com/PowerShell/PowerShell/issues/6954 ,它也是一个错误

解决方法是路径中的任何空格我关闭 -raw 并在 set-content 上删除 -nonewline

$FilePath = 'C:\W10\New\VB\NEW\Load Configuration File\ConfigFileIO.txt'
$content =(Get-Content -LiteralPath $FilePath )  -replace "Debug=-1" , "Debug=0" 
Set-Content -path $FilePath -Value $content 

但是当我使用相同的代码时,我得到 Get-Content : Cannot find drive。名为“C”的驱动器不存在。


推荐阅读