小编Sha*_*har的帖子

带“n”的 Powershell 长字符串在控制台中显示正常,但得到 .count = 1

我正在操作一个测试,其中使用多个.replace命令来格式化文本。

例如

$str="hello%worldZZZniceZZZtoZZZmeet"
$str.Replace("%","`n").replace("ZZZ","`n")
Run Code Online (Sandbox Code Playgroud)

控制台中的输出很好,但我需要迭代每一行。问题是$str.count = 1,即使在控制台中显示良好,powershell 仍将这个字符串视为一行。任何想法?

编辑:

如果我将字符串输出到文件,然后读取该文件,它会读取新行,但我确信有更好的方法,而不是输出到文件,然后再次读回

powershell

4
推荐指数
1
解决办法
140
查看次数

Powershell启动作业范围

我有一个很长的剧本。我有一个记录功能:

function Log ([string]$Content){
    $Date = Get-Date
    Add-Content -Path $LogPath -Value ("$Date : $Content")
}
Run Code Online (Sandbox Code Playgroud)

在脚本的某些时候,我需要并行运行作业。我有一个计算机名称列表,我需要对每个计算机名称使用 psexec。这应该作为并行运行的作业来完成


        Start-Job -ScriptBlock {
        
        Log "$line Has called"
            $Program_List = gc $USERS_DB_PATH\$line.txt | select -Skip 1
            if (Test-Connection $line -Quiet) {
                    ForEach ($program in $Program_List){
                    Log "$line $program"
                    #"line $line bot is $bot pwd is $pwd"
                    psexec \\"$line" -u bla.local\"$bot" -p $pwd cmd bla
                    
                    }
            }
            else{
                  Log "Cannot Connect to $line"
            }
        
        
        }
        #Remove-Item "$USERS_DB_PATH\$line.txt"


}

Run Code Online (Sandbox Code Playgroud)

我知道这与范围有关,但是如何使这个脚本块看到函数 Log 和所有必要的变量?他们都空了

powershell scope start-job scriptblock

2
推荐指数
1
解决办法
2709
查看次数

从特定字符(或之后)+ Bash 剪切所有内容

我有看起来像这样的文件:filename.bla_1

当然,我不知道文件名中是否包含“_”。可能是 file_name.bla_1。我想编写一个函数来获取文件名并删除末尾的 _#。filename.bla_1 将是 --> filename.bla

echo $filename | rev | cut -d "_" -f2 | rev
Run Code Online (Sandbox Code Playgroud)

如果文件名中没有“ ”,我会这样做,但我想确保这也适用于带有“ ”的文件名

bash

0
推荐指数
1
解决办法
33
查看次数

标签 统计

powershell ×2

bash ×1

scope ×1

scriptblock ×1

start-job ×1