2013-04-08 115 views
0

请检查这...批次... Do循环脚本

它创建文件递归的X号码的文件夹,但这一举动,命令检查也destination_folder =目标文件夹的subufolder,创造一个错误的号码的空文件夹。如何从For ... Do中排除destination_folder? 谢谢

+0

'for/r'总是递归的。 – Endoro 2013-04-08 11:25:34

+0

我知道'/ R'总是递归的,但是它的递归问题也是在新创建的子目录中,所以也是''C:\ My Folder \ Destination文件夹“'和我该怎么避免/排除循环或替代解决方案 – Jack 2013-04-08 11:43:34

回答

1

只需添加一个检查,看看%%~pF内是否存在%destination_folder%

FOR /R "%folder%" %%F IN (*.*) DO (

    rem --- add this --- 
    set "loopfolder=%%~pF" 
    if "%%~pF"=="!loopfolder:%destination_folder%=!" (
    rem ---------------- 

     if !n!==1 (
     etc. 

...这基本上意味着,从%%F路径的价值剥离%destination_folder%的值,如果没有什么变化后,则路径不包含目标文件夹。继续。

+0

请问你能更具体吗?如果我找到'%destination_folder%',我可以做什么?我需要排除,不包括。谢谢 – Jack 2013-04-08 12:11:38

+0

我不确定你在问什么。如果你的循环值'%% F'包含“目标文件夹”,你想继续下一次迭代而没有任何操作,对吧?这就是这样做的。如果循环值'%% F'确实*不*包含文本“目标文件夹”,那么'if'语句中的任何内容都应该执行。 – rojo 2013-04-08 12:13:54

+0

如果已经测试过,不能按预期工作。它创建了正确数量的文件夹(例如40个文件= 4个文件夹),但它将所有文件放在最后一个文件夹中,而不是每个文件夹中的10个文件。感谢 – Jack 2013-04-08 12:16:15