2014-10-10 156 views
0

我有很长的文件夹partail名称列表(每个部分是唯一的特定文件夹);我想要做的是编写一个批处理文件来遍历每个文件夹中的每个子文件夹,将这些文件拖到该文件夹​​的根目录,并在存在重复时替换这些文件(这里有很多重复的内容,重新寻找删除)。从CSV文件中的文件夹批空子文件夹

我已经使用了几个批处理文件来移动这些文件夹并做其他事情,我只是无法让代码在清空子文件夹上工作。

批处理文件1(访问CSV,调用其他批次做的工作):

@echo off 
FOR /F "tokens=1,3 delims=," %%G IN (Pt1Test.csv) DO call Empty1.bat %%G 

批处理文件2(应该是空的子文件夹,然后在沿着移动到下一个文件夹列表):

@echo off 
set _Uname=%1 
for /f "eol=: delims=" %%F in ('dir /b^|find "%_Uname%"') do <NEXT BIT I CAN'T FIGURE OUT> 

时遇到的问题越来越命令中主文件夹拉

我知道这个代码的工作,当我把它直接进入DOS:

for /r %f in (*) do @move /y "%f" 

但我不能有一个对,做对,做,我不希望有那种类型对于5000左右的文件夹我想删除重复。

感谢您的帮助!

泰勒

+0

'并替换文件,如果有重叠'< - 这是什么意思? – foxidrive 2014-10-10 16:00:28

+0

编辑澄清。我的意思是说如果有重复(覆盖)替换文件,@move命令中的/ y会执行此操作。 – Tyler 2014-10-10 16:33:54

+0

文件二进制文件是否重复,并且您想删除除一个副本之外的所有文件?这是练习的主要目的吗?还是他们有相同的文件名,你想只保留一个副本? – foxidrive 2014-10-11 02:29:54

回答

0

是否有1,3理由吗?您的示例中没有使用3(%% H)。

这个怎么样?在你的第二个命令之前,只需转到每个目录并返回。

@echo off 
FOR /F "tokens=1,3 delims=," %%G IN (Pt1Test.csv) DO (
    pushd *%%G* 
    for /r %%a in (*) do @move /y "%%a" 
    popd 
) 
+0

这工作完美,谢谢!我不需要1,3,只有1,忘记改变从早期的脚本。 – Tyler 2014-10-14 15:25:45

相关问题