【问题标题】:Powershell Copy-Item command does not work when run from ps1 file but does when executed manuallyPowershell Copy-Item 命令在从 ps1 文件运行时不起作用,但在手动执行时起作用
【发布时间】:2022-11-23 03:41:23
【问题描述】:

这让我发疯,任何帮助将不胜感激。

我有以下 powershell 脚本摘录:

if (Test-Path $logsCopy) 
{
    Write-Host "Copy-Item -Path ${logsCopy}*.txt -Destination $logsPath -Recurse -Force"
    Copy-Item -Path "${logsCopy}*.txt" -Destination $logsPath -Recurse -Force
}

运行我的 ps1 文件的摘录会返回以下错误。
我在执行之前打印了我试图执行的命令。
不过,手动运行它是可行的。
路径都存在。
两种执行(ps1 文件和手动)具有相同的管理员权限。

这里有什么问题 ?!

【问题讨论】:

  • 红色的大行只是隐藏了我写的日志行我懒得删除帖子......
  • $logscopy 设置了什么?
  • @js2010:看截图第一行,Write-Host的结果。 logsCopy 设置为 C:\ProgramData\...\LogsTemp`, therefore printing ${logsCopy}*.txt gives C:\ProgramData\...\LogsTemp*.txt`

标签: powershell copy-item


【解决方案1】:

您是否尝试过在其自己的变量中设置路径,也许将其转换为字符串:

[String]$Path = ${logsCopy}*.txt
Copy-Item -Path $Path -Destination $logsPath -Recurse -Force

甚至会

[String]$Path = "{0}*.txt" -f $logscopy.trim("")

【讨论】:

  • 第一个选项给出相同的错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-25
  • 2021-12-14
  • 2013-10-27
  • 1970-01-01
相关资源
最近更新 更多