我有这样的PowerShell脚本:
Foreach ($file in $files) {
[Do something]
[Do something]
[Do something]
}
Run Code Online (Sandbox Code Playgroud)
这样,一个文件将在另一个文件之后处理.我想同时处理4个文件.
我知道foreach -parallel循环,但是并行执行[do something]任务.我基本上想要并行运行整个foreach循环.
如何在PowerShell中实现这一目标?
我有这个问题,我想删除列表元素,如果它包含'非法'字符.合法字符在多个列表中指定.它们是这样形成的,其中alpha代表字母(az + AZ),digit代表数字(0-9),punct代表标点符号(排序).
alpha = list(string.ascii_letters)
digit = list(string.digits)
punct = list(string.punctuation)
Run Code Online (Sandbox Code Playgroud)
这样我可以将某些内容指定为非法字符,如果它没有出现在其中一个列表中.
之后我有一个包含元素的列表:
Input = ["Amuu2", "Q1BFt", "dUM€n", "o°8o1G", "mgF)`", "ZR°p", "Y9^^M", "W0PD7"]
Run Code Online (Sandbox Code Playgroud)
我想过滤掉包含非法字符的元素.所以这是我想得到的结果(不需要订购):
var = ["Amuu2", "Q1BFt", "mgF)`", "Y9^^M", "W0PD7"]
Run Code Online (Sandbox Code Playgroud)
编辑:
我试过(以及它的所有变体):
for InItem in Input:
if any(AlItem in InItem for AlItem in alpha+digit+punct):
FilInput.append(InItem)
Run Code Online (Sandbox Code Playgroud)
其中仅使用过滤后的元素创建新列表,但问题是当包含至少一个合法字符时添加元素.例如:"ZR°p"添加,因为它包含Z,R和a p.
我也尝试过:
for InItem in Input:
if not any(AlItem in InItem for AlItem in alpha+digit+punct):
Run Code Online (Sandbox Code Playgroud)
但在那之后,我无法弄清楚如何删除元素.哦,还有一点小小的提示,为了让它变得更加困难,如果它有点快,那将会很好,因为它需要做数百万次.但它需要首先工作.