按模式查找文本文件名并移动到新创建的文件夹

时间:2015-12-10 09:32:59

标签: batch-file

我需要一些批处理文件的帮助,因为我之前没有这样做过。我需要找到具有匹配模式的文本文件并将它们移动到类文件夹。我有几个文件夹正在浏览。任何人都可以帮我修改代码以将文本文件移到一起吗?

这就是我研究和拼凑的东西。

@echo off

setlocal enabledelayedexpansion

set file=name.txt
set foldername=class
set location=blockB

for /f "tokens=* delims=" %%a in (!file!) do (

set folder=%%a\public\

if not exists "%CD%\!folder!\!foldername!" (mkdir "%CD%\!folder!\!foldername!") ELSE (call)

dir /b "!folder!" | findstr /r /c"!location!"
)

我的name.txt包含(adam,ben,charlie)每行1个名字。所以从技术上讲,我想将文本文件名中包含blockB的(\ adam \ public)文本文件移动到新创建的文件夹调用类(\ adam \ public \ class)。我希望它为(\ ben \ public)和(\ charlie \ public)做同样的事情。如果我在编码方式上有任何错误请原谅我。感谢。

我没有使用完整路径的原因是因为我将在具有相同文件夹配置的不同计算机上使用它。

1 个答案:

答案 0 :(得分:0)

我猜你正在努力实现这个目标:

@echo off
setlocal EnableExtensions EnableDelayedExpansion

set "FILE=name.txt"
set "FOLDERNAME=class"
set "LOCATION=blockB"

for /F "usebackq eol=| delims=" %%F in ("!FILE!") do (
    set "FOLDER=%%~fF\public"
    mkdir "!FOLDER!\!FOLDERNAME!"
    move "!FOLDER!\*!LOCATION!*.txt" "!FOLDER!\!FOLDERNAME!\"
)
endlocal