Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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 - Fatal编程技术网

如何在PowerShell中循环文件(完整路径)

如何在PowerShell中循环文件(完整路径),powershell,Powershell,如何在PowerShell中执行等效操作?请注意,我需要每个文件的完整路径 # ksh for f in $(find /app/foo -type f -name "*.txt" -mtime +7); do mv ${f} ${f}.old done 我在Get ChildItem上玩了一会儿,我确信答案就在某个地方。我不确定mtime的作用这里是做其他事情的代码 gci -re -in *.txt "some\path\to\search" | ?{ -not $_.PSIs

如何在PowerShell中执行等效操作?请注意,我需要每个文件的完整路径

# ksh
for f in $(find /app/foo -type f -name "*.txt" -mtime +7); do
   mv ${f} ${f}.old
done

我在Get ChildItem上玩了一会儿,我确信答案就在某个地方。

我不确定mtime的作用这里是做其他事情的代码

gci -re -in *.txt "some\path\to\search" | 
  ?{ -not $_.PSIsContainer } |
  %{ mv $_.FullName "$($_.FullName).old" }

这似乎使我接近我所需要的。我能够把Jared的答案中的一些信息与我的答案结合起来,找出答案

foreach($f in $(gci -re -in hoot.txt "C:\temp")) {
   mv $f.FullName "$($f.FullName).old"
}
为了分享财富,这里是我模拟*nix find的函数

function unix-find (
   $path,
   $name="*.*",
   $mtime=0) 
   {
   gci -recurse -include "$name" "$path" | 
      where-object { -not $_.PSIsContainer -and ($_.LastWriteTime -le (Get-Date).AddDays(-$mtime)) } |
      foreach { $_.FullName }
   }

mtime-文件数据上次修改是在n*24小时前。
?{$\u.LastWriteTime-le(Get Date).AddDays(-8)}
不知道如何在此处设置注释格式,因此无法粘贴代码和输出。但当我尝试原始答案时,出现错误“Move Item:无法将参数绑定到参数‘Path’,因为它为null”。我使用的是PowerShell 1,这可能是一个问题?不过,您不需要明确地将
$.FullName
作为
移动项的第一个参数。它也可以从
$\uuu
中找到它。您可以进一步优化它,因为Move Item-destination参数通过管道进行输入,您可以这样做:`…|移动Item-Dest{$\FullName+'.old'}`。您应该将您的发现移动到答案中,以便可以更新。谢谢您的建议,我会的。