Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 获取前x个字符的最简单方法?_Powershell - Fatal编程技术网

Powershell 获取前x个字符的最简单方法?

Powershell 获取前x个字符的最简单方法?,powershell,Powershell,Out字符串似乎不起作用,至少在5.1和6b2版本中是这样: "$('a'*10) $('b'*10)" | Out-String -Width 10 结果: aaaaaaaaaa bbbbbbbbbb 你可以用这个。如果子字符串位置不包含在字符串中,则此操作失败。在本例中,如果字符串短于10个字符 "$('a'*10) $('b'*10)".Substring(0,10) 或者,可以使用-replace删除字符串的最后一部分。因为当字符串小于10时,没有匹配的内容,所以它不会替换任何内容

Out字符串似乎不起作用,至少在5.1和6b2版本中是这样:

"$('a'*10) $('b'*10)" | Out-String -Width 10
结果:

aaaaaaaaaa bbbbbbbbbb
你可以用这个。如果子字符串位置不包含在字符串中,则此操作失败。在本例中,如果字符串短于10个字符

"$('a'*10) $('b'*10)".Substring(0,10)
或者,可以使用-replace删除字符串的最后一部分。因为当字符串小于10时,没有匹配的内容,所以它不会替换任何内容,但不会失败,只返回原始字符串

"$('a'*10) $('b'*10)" -replace '(^.{10})(.*$)','$1'

当字符串少于10个字符时,该方法将失败。@mtman在回答中指出,给出了另一种方法,当字符串少于10个字符时,该方法将返回原始字符串,而不是失败。好主意,我认为正则表达式应为^.{10}.*$,以确保它不能从中间拾取字符。