小编Ben*_*rup的帖子

Foreach-Object vs Foreach循环的运行时

我想做我的脚本的进度条,但后来我需要总量的文件夹.

是否存在显着的运行时差异:

Get-ChildItem $path -Directory | ForEach-Object {
    #do work
}
Run Code Online (Sandbox Code Playgroud)

$folders = Get-ChildItem $path -Directory
foreach($folder in $folders){
    #do work
}
Run Code Online (Sandbox Code Playgroud)

然后我可以$folders.Count用作我的文件夹总数.我不知道如何使用foreach-object循环来完成它.

powershell

3
推荐指数
3
解决办法
1812
查看次数

使用长文件路径时的 Get-ChildItem 错误处理

我试图在扫描文件夹时处理错误。假设我有类似的东西:

Get-ChildItem $somepath -Directory | ForEach-Object {
   if(error occurred due to too long path) {
        skip this folder then
   } else {
       Write-Host $_.BaseName
   }
}
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我会打印文件夹,$somepath直到其中一个太长,然后循环停止。即使在使用SilentlyContinue. 即使到达太长的文件夹后,我也想打印。

powershell

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

使用Powershell更改远程服务器的IP会出现断开连接错误

我正在尝试远程调用服务器上的命令并更改其 IP 以及其他设置。我得到以下代码行:

Invoke-Command -ComputerName $currentIP {`
$wmi = Get-WmiObject Win32_NetworkAdapterConfiguration -Filter "ipenabled = 'true'";`
$wmi.SetDNSServerSearchOrder($DNSServers);`
$wmi.SetGateways($Defaultgateway);`
$wmi.EnableStatic($newIP,"255.255.255.0")} -Credential $cred 
Run Code Online (Sandbox Code Playgroud)

每个设置都已应用,但在脚本结束时它开始进行:

与 ###.##.###.## 的网络连接已中断。尝试重新连接长达 4 分钟...

并且继续连接失败,显然是因为IP已更改。但是IP更改后我不再发出命令了吗?那么为什么会发生这种情况以及如何阻止它呢?

powershell

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

标签 统计

powershell ×3