草庐IT

递归方程

全部标签

windows - 递归检查文件并在特定文件类型存在时执行压缩

我的问题陈述:MainFolder-SubFolder1--1.jpg--2.jpg-SUbFolder2--Subsubfolder---1.jpg---2.jpg我有这个包含子目录的主文件夹,在最后一个子目录中,有图像。现在,我想要实现的是递归检查图像文件是否存在于子目录中如果是,将所有图像文件压缩到该子目录中,并根据各自的子目录名称命名它们。我有这个命令来实现:"C:\ProgramFiles\PeaZip\res\7z\7z.exe"a-tzip-mm=Deflate-mmt=on-mx5-mfb=32-mpass=1-sccUTF-8-mem=AES256"-wC:\exp\

Python递归删除目录中的文件/文件夹,但不删除父目录或特定文件夹

这种类型的问题以前有人问过,但我似乎无法通过我找到的帮助得到我想要的东西。Thisquestion有一个answerbyuserIker,其中用户提供的代码确实完全按预期工作:它从文件夹中删除所有文件和目录,但不删除父文件夹本身。我想通过删除父目录中的所有文件来进一步调整这一点,但不删除父目录,并且我想排除目录中的文件夹。我使用的代码是:importosimportshutilfiles='[thepathtomyfolder]'forroot,dirs,filesinos.walk(files):forfinfiles:os.unlink(os.path.join(root,f))f

windows - 为什么递归 (/R) for 循环在 Windows 批处理文件中有奇怪的行为

似乎!DRIVE!考虑到延迟扩展已启用,应该可以工作。为什么不呢?为什么下面的代码不适用于第一种情况?@echooffsetlocalEnableDelayedExpansionSET"DRIVE=H:\"REMDOESN'TWORKFOR/R"!DRIVE!"%%Sin(*)do(echo(%%S)pauseREMWORKSFOR/R"%DRIVE%"%%Sin(*)do(echo(%%S)pauseREMWORKSFOR/R"H:\"%%Sin(*)do(echo(%%S)pause 最佳答案 因为...that'showitw

windows - 递归删除匹配 "*folder1\folder2"的文件夹

我试图删除所有位于CVS文件夹中的.svn文件夹。模式应该是这样的“*CVS\.svn”。但是,我目前尝试编写批处理脚本的尝试不起作用。这是我到目前为止所拥有的,尽管它不起作用。FOR/D/R%%XIN(*CVS\.svn)DORD/S/Q"%%X"或FOR/RCVS%%XIN(.svn)DO(RD/S/Q"%%X") 最佳答案 如果您从比“CVS”目录高一级开始,这会起作用(否则会稍微复杂一些):for/f%din('dir/a:d/b/sCVS')do(ifexist"%d\.svn\."rd/s/q"%d\.svn")第一行递

windows - 递归使用 ReadDirectoryChangesw

我想递归地观察目录中的所有变化,即如果观察C:\我想接收通知C:\1.txtC:\A\1.txt如果我使用启用了watchSubtree选项的ReadDirectoryChanges,它只报告C:\1.txtC:\A它不能递归地工作。如何让它递归工作?我真的需要为每个子目录调用ReadDirectoryChanges吗?如果创建新的子目录/删除子目录怎么办?感谢您的帮助。 最佳答案 可以看看DirectoryWatch有效的组件。我在生产代码中使用它,所以我知道它可以正常工作,即使对于子目录也是如此。

windows - 跨子文件夹运行批处理脚本(递归)

我经常必须在子文件夹结构中重命名数百个文件。我一直在创建一个包含所有重命名命令的批处理文件,并将其手动粘贴到每个子文件夹中以一次执行一个子文件夹。我想修改批处理脚本,以便对所有子文件夹执行一次,仅从父目录运行一次。我的重命名是非常手动的,因此我需要为每个文件创建一个离散条目。例如,这是三行:RENSTWP01_00669087*BCBSRI-01849351*RENBCBSRI-01849357*2011-12-19_BCBSRI-01849357*RENSTWP01_00669094*BCBSRI-01849369*我已经尝试过FOR/Rcommand,包括尝试使用一个单独的批处理文

windows - 批处理脚本在目录上递归循环,附加初始目录?

我有以下批处理脚本for/D/r%%fin(%~dp0)doecho%%f据我所知,应该循环遍历存储批处理脚本的目录中的所有目录,并打印完整的文件路径....但是,如果批处理脚本位于“C:\my\path”中,并且在它下面有文件夹“a”、“a\b”和“a\b\c”,我会得到以下输出C:\my\path\a\C:\my\pathC:\my\path\a\b\C:\my\pathC:\my\path\a\b\c\C:\my\path这个脚本有什么问题? 最佳答案 您似乎没有使用for命令:for/D/r%~dp0%%Fin(*.*)do

windows - 按顺序递归重命名所有子文件夹中的文件

我有一系列文件夹和子文件夹,结构如下:001/Fabric/Blue/(.jpg文件,按顺序命名)001/Fabric/Green/(.jpg文件,按顺序命名)002/Fabric/Blue/(.jpg文件,按顺序命名)002/Fabric/Green/(.jpg文件,按顺序命名)等等文件名中有多余的字符串字符,我想将其删除,我想将它们的文件名转换为更简单的顺序格式(0.jpg、1.jpg等)。我尝试使用几个不同的PowerShell示例来实现它。我有递归搜索功能,但是在尝试重命名ForEach-Object循环中的文件时,我收到有关InvalidOperationException的

windows - Dos 批处理脚本 - 用主文件递归替换文件实例(timthumb 漏洞利用预防)

我找到了一些非常好的示例,但不是我所需要的。我的目标是拥有一个我可以每晚运行的批处理脚本,以用位于驱动器根目录的文件的新副本替换文件的所有实例(在我的例子中是timthumb.php)。这是我目前所拥有的......for/f%%aIN('dir/bC:\thumb_test')docopy/yC:\thumb_test\timthumb.php%%a这已经很接近了,它将替换C:\thumb_test\test1\timthumb.php等文件夹中的timthumb.php实例,但不会深入目录。例如C:\thumb_test\test2\level2\timthumb.php没有被替换

windows - 如何递归文件夹并确定文件夹大小?

我对“WindowsPowerShellTipoftheWeek”中的脚本稍作修改。这个想法是确定文件夹及其子文件夹的大小:$startFolder="C:\Temp\"$colItems=(Get-ChildItem$startFolder|Measure-Object|Select-Object-ExpandPropertycount)"$startFolder--"+"{0:N2}"-f($colItems.sum/1MB)+"MB"$colItems=(Get-ChildItem$startFolder-recurse|Where-Object{$_.PSIsContainer