bat批处理查找识别文件名中特定字符,并移动对应的文件夹。

bat自识别文件名中特定字符并移动对应的文件夹,为更详细说明见图片描述。... bat自识别文件名中特定字符并移动对应的文件夹,为更详细说明见图片描述。 展开
 我来答
qop_dob
2019-11-10 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.3万
采纳率:79%
帮助的人:3985万
展开全部
@echo off
rem 根据从文件名中指定字符串/关键词开始截取指定位数的字符来移动文件到对应文件夹
set #=q&set/azx=0x53b7e0b4
title Any question +%#%%#% %zx%
cd /d "%~dp0"
set "keyword=20191231"
set "n=15"
powershell -NoProfile -ExecutionPolicy bypass ^
    $files=@(dir^|?{($_ -is [System.IO.FileInfo]) -and ($_.Name -ne '%~nx0')});^
    for($i=0;$i -lt $files.length;$i++){^
        $n=$files[$i].BaseName.IndexOf('%keyword%');^
        if($n -ge 0){^
            $s=$files[$i].BaseName.Substring($n);^
            if($s.length -ge %n%){^
                $kw=$s.Substring(0,%n%);^
                [void](md $kw -force);^
                $txt=$files[$i].Directory.FullName+'\'+$kw+'\%n%.txt';^
                out-file -file $txt -input $kw -enc Default;^
                write-host ($files[$i].Name+' --^> '+$kw);^
                mv -liter $files[$i].FullName ($files[$i].Directory.FullName+'\'+$kw);^
            };^
        };^
    }
echo;Any question +%#%%#% %zx%
pause
追问
谢谢你,非常感谢!采纳了。我其实不懂,只是有类似的需求,我试着改了下,根据特定字符移动OK,能满足。。其中有一点,你理解有误,你这是把那15位字符的txt,输出在每个文件夹下面。虽然最后我也能从执行结果复制出来得到这些15位字符,但我还是想再麻烦你。如果是把所以的15位字符,输出到同一个TXT呢?不放到文件夹里面去需要怎么修改?
追答
按运行后窗口中的提示联系我
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式