批处理脚本可根据当前的父名称将特定的子文件夹移动到新的父文件夹中

埃里克

我有一个C:\ CurrentProjects目录和一个C:\ HistoricProjects目录

当前项目目录的布局为C:\ CurrentProjects \ LocationName \ ProjectYear #### \ ProjectTitle \ etc ...

我想搜索一个特定的Project Year,并将其及其所有子文件夹移至以下位置:

C:\ HistoricProjects \ LocationName \ etc ...

使用相同的位置名称,而不会移动任何其他项目年份。

因此,例如:

C:\ CurrentProjects \ Chicago \ ProjectYear2013 \ etc ...

C:\ CurrentProjects \ Chicago \ ProjectYear2014 \ etc ...

C:\ CurrentProjects \ Chicago \ ProjectYear2015 \ etc ...

C:\ CurrentProjects \ Seattle \ ProjectYear2013 \ etc ...

C:\ CurrentProjects \ Seattle \ ProjectYear2014 \ etc ...

C:\ CurrentProjects \ Seattle \ ProjectYear2015 \ etc ...

VVVV

C:\ HistoricProjects \ Chicago \ ProjectYear2013 \ etc。

C:\ HIstoricProjects \ Seattle \ ProjectYear2013 \ etc。

rlb.usa

在您的测试目录中尝试以下操作:

 FOR /D %d IN (*\ProjectYear2014\) DO (MOVE %d\ProjectYear2014\ C:\HistoricProjects\%d\ProjectYear2014 )

该命令的基础是:

 FOR /D %d IN             :: for directories, store matches in variable %d
 (*\ProjectYear2014\)     :: that are located in (anything)\ProjectYear2014
 DO (MOVE %d\ProjectYear2014\               :: Move target (match)\... 
 C:\HistoricProjects\%d\ProjectYear2014 )   :: To new directory ...

我只是想解释一下,::这相当于DOS中的注释,但是对它们却非常挑剔。绝对不要在代码块内(例如,在FOR块内)使用注释,并且如果您尝试使命令像第二个示例一样跨多行,则CMD会阻塞。我只是用这种方式写的,以帮助解释发生了什么。

这是您已经拥有的代码:

@echo off 
Set /P YEAR=Project Year to move? 
FOR %%A IN (ATTRIB C:\ActiveTest*\"ProjectYear %YEAR%") DO 
::I can't figure out how to make DIR look back and only pull the 2nd level into a variable.
::If I can get that I figure I can work it into a ROBOCOPY somehow.

结合它们,您的最终结果将是这样,但可能不完全是这样:

@echo off 
Set /P YEAR=Project Year to move? 
FOR /D %d IN (C:\CurrentProjects\*\ProjectYear%YEAR%\) DO (MOVE C:\CurrentProjects\%d\ProjectYear%YEAR%\ C:\HistoricProjects\%d\ProjectYear%YEAR%\ )

ew,对我来说,这是一个学习过程。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Bash脚本可根据匹配的ID号将文件移动到文件夹中?

批处理脚本:根据源文件夹名称将文件移动到文件夹

将子文件夹中的所有文件移动到父文件夹

将子文件夹中的所有文件移动到父文件夹

将文件夹移动到父文件夹并附加父名称

将文件移动到CMD中的父文件夹

Shell脚本将所有文件从子文件夹移动到父文件夹

根据名称将文件移动到特定文件夹

将子文件夹移动到父文件夹

Windows-如何将子文件夹中的所有文件移动到父文件夹?

批处理文件以在文件夹中创建新的子文件夹,将文件移动到目录中所有文件夹的新创建的子文件夹

批处理文件-根据父名称和(子)文件夹名称重命名文件

GIT:将父/子文件夹的所有内容移动到父/

批处理文件可根据名称移动文件而无需创建新文件夹

创建与父文件夹同名的子文件夹并将文件移动到其中

使用 Windows 批处理脚本将多个文件从子文件夹移动到单个文件夹

如何将文件从子文件夹移动到父文件夹?

将多个具有确切名称的文件夹移动到其自己的父文件夹

批处理脚本可将EAN 13条形码文件移动到指定的YMD文件夹

批处理文件,可根据其文件夹名称识别文件

批处理脚本将每组 n 个文件移动到不同的新文件夹

批处理脚本将x个文件移动到空文件夹

Windows批处理脚本,以某种平衡的方式将XML文件移动到多个文件夹

如何使用父文件夹中的数据批处理子文件夹中的“触摸”文件

批处理命令将png文件移动到文件夹中具有相同名称的文件和文件夹

将包含字符串的所有文件从多个子文件夹移动到父文件夹中

将文件夹内容移动到父文件夹

Powershell脚本可根据pdf名称中的5位数字创建一个文件夹

批处理-根据名称将文件夹和内容移动到其他驱动器