Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.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 面向对象问题的输出和简易算法_Powershell_Shell - Fatal编程技术网

Powershell 面向对象问题的输出和简易算法

Powershell 面向对象问题的输出和简易算法,powershell,shell,Powershell,Shell,函数-eq 0…不确定是否每隔一个文件打印一次。我不知道这些文件是如何编号的,也不知道您如何引用文件的编号。您是否将每个文件视为一个对象并对其进行编号?然后创建一个关于附加到文件中的数字的函数 这是一个相当新的概念,我已经习惯了html和css 如果你有一个更熟练的答案,我也愿意接受这个想法。你的脚本几乎可以工作 删除了dir的别名,并按要求对结果进行了排序。 Get-ChildItem的-File开关排除文件夹。我想这就是你想要的,但如果不是这样,就把它拿走 因为在foreach中获取当前位置

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

这是一个相当新的概念,我已经习惯了html和css


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

你的脚本几乎可以工作

删除了dir的别名,并按要求对结果进行了排序。 Get-ChildItem的-File开关排除文件夹。我想这就是你想要的,但如果不是这样,就把它拿走

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

$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
 } 

} 

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

为什么不简单地使用for循环并将索引计数器的值递增为2

$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
    }
}
for ($i = 0; $i -lt $a.Count; $i += 2) {
    Write-Host  $a[$i].Name
}