powershell - 输出和简单的算法问题面向对象

标签 powershell shell

$a = dir
foreach ($file in $a) 
{
 if (($file.index%2 ) -eq 0) 
                              //Hopefully this function works, supposed to 
                              (Ideally) print every other file 
 {
    Write-Host  $file.name
 } 

} 

函数-eq 0...不确定是否打印出所有其他文件。我不知道文件到底是如何编号的,也不知道如何引用文件的编号。您是否将每个文件视为一个对象并对它们进行编号?然后创建一个关于附加到文件中的数字的函数?

对此还很陌生,我已经习惯了 html、css。

如果您有更熟练的答案,我也愿意接受这个想法。

最佳答案

你的脚本几乎可以运行了。

删除了 dir 的别名,并按要求对结果进行了排序。 Get-ChildItem 的 -File 开关排除文件夹。我想这就是您想要的,但否则请将其删除。

由于没有简单的方法来获取 foreach 中的当前位置,因此我使用了 for 循环,但这是相同的想法。如果您想尝试使用 foreach,您可以将一个变量设置为 true,然后在每次迭代时不(!)它。

$Path = 'C:\yourpath'

$Files = Get-ChildItem -Path $Path -File |
    Sort-Object -Property 'Name' -Descending

for ($i = 0; $i -lt $Files.Count; $i++) {
    if ($i % 2 -eq 0) {
        Write-Host  $Files[$i].Name
    }
}

如果您要进一步使用此输出,强烈建议将结果写入对象而不是控制台窗口。

关于powershell - 输出和简单的算法问题面向对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64850770/

相关文章:

unix - 如何在 shell 脚本中使用 ftp 删除 3 天前的文件 (Solaris OS)

variables - 在一行中导出PowerShell变量

windows - 无法使用 Remove-Item -Recurse -Force 递归删除某些文件

asp.net - 将文件表单 powershell 上传到 asp.net

powershell - Cryptolocker 蜜 jar FileSystemWatcher

删除mailq消息的C代码

powershell - 在 PowerShell 中的静态类上设置静态属性

mysql - 检查mysql是否启动或关闭的shell脚本

linux - Bash - 从 ls -la 输出中过滤掉目录,但保留目录 "."

linux - 使用Linux shell脚本在文件名中插入文本