gpt4 book ai didi

powershell - 尝试将脚本 block 写入文件时,PowerShell scriptBlock会包装脚本

转载 作者:行者123 更新时间:2023-12-02 23:46:53 25 4
gpt4 key购买 nike

我正在尝试通过另一个PowerShell脚本创建一个PowerShell脚本。我有类似的东西:
>

    $scriptBlock = {
write-host "this is the body of the script that I want to add to another PS script"
if($true){
write-host "so that I can execute this automatically created script somewhere "
}
}

    $scriptBlock | Out-String -Width 4096 | Out-File "c:\test.ps1"


AtRunUnattended.exe“$($ Dict.Get_Item(” MASTER_DIRECTORY_PATH“))\ MEDIA_FILE \” / S / noreboot / L logfile =“%TEMP%\ AT $($ Dict.Get_Item(” PRODUCT_NAME“))V8.4。日志” altsource =“C:\ temp \ baf \ mediafile”

但是,当我有一些长的单行脚本(如上面显示的脚本)时,它会自动包装,因此输出的.ps1文件将无法正常工作,就像我直接从父脚本中调用该脚本一样。
因此,在父.ps1脚本创建的.ps1文件中,代码如下所示:
ElseIf($str.StartsWith("DRIVER_DATE=")){$str = "DRIVER_DATE=$(Get-Date 
-f MM-dd-yyyy))"}

如果运行,它将无法正常运行。

那么,有谁知道如何对脚本块进行文本格式设置,以便将其正确写入另一个子脚本文件中以进一步执行?
我做了一些研究,我认为这可能与PS的内部文本缓冲区宽度有关。我尝试了其他文件输出方法,例如[System.IO.StreamWriter],但是它们看起来都一样-包装并限制为每行一定的宽度。

Please help me, thank you!



这件事的全部目的是自动生成一些脚本,并在其他计算机上远程执行这些创建的脚本。

最佳答案

将-Width参数与Out-File cmdlet一起使用,如下所示:

Out-File -FilePath "c:\test.ps1"  -Width 4096

关于powershell - 尝试将脚本 block 写入文件时,PowerShell scriptBlock会包装脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18962841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com