bat匹配部分文件名移动至目标文件夹

本文介绍如何使用bat批处理脚本来匹配部分文件名并将文件移动到对应的文件夹中。以房屋档案和居住人口档案为例,通过匹配房屋编号,实现了批量移动人口档案到相应的房屋档案文件夹内。示例代码包含两种情况,适用于不同命名格式的文件。
摘要由CSDN通过智能技术生成

示例:

某市房屋档案文件夹命名为“A001-中山路1号,A002-中山路2号……”

而房屋居住人口档案命名为“A001-张三.docx、A001-张四.docx、A002-李四.docx……”

需将人口档案移动至对应房屋档案文件夹。

思路如下:

因房屋编号存在唯一性,通过匹配房屋编号实现。

1、读取.docx文件列表,截取房屋编号;

2、读取文件夹列表,截取房屋编号;

3、对比两个值匹配,字符相等进行移动文件至目标文件夹。

bat代码如下:

@echo off
for /f "tokens=1,* delims=-" %%a in ('dir /b/a-d *.docx') do (^
for /f "tokens=1,* delims=-" %%i in ('dir /b/ad') do ^
if %%a==%%i move %%a-%%b %%i-%%j)
pause

现实中某街道将人口档案命名为“张三-A001.docx、张四-A001.docx、李四-A002.docx……”

需对

### 回答1: 可以使用以下BAT程序: @echo off for %%f in (*.txt) do ( set "file=%%~nf" set "dir=%%~pf" set "dir=!dir:~0,-1!" if "!file:~0,7!"=="!dir:~0,7!" ( move "%%f" "!dir!" ) ) ### 回答2: 你可以使用以下的批处理程序来实现将文件移动文件夹的功能: ```batch @echo off setlocal enabledelayedexpansion set "folder=C:\目标文件夹的路径" for %%I in (*.*) do ( set "filename=%%~nI" set "filepath=%%~dpI" set "foldername=%%~pI" if "!filename!"=="!foldername!" ( move "!filepath!%%I" "!folder!" ) ) echo 文件移动完成。 pause ``` 请注意,你需要将程序中的`C:\目标文件夹的路径`替换成你想要移动文件的目标文件夹的实际路径。 程序首先会将目标文件夹的路径存储在`folder`变量中。然后通过一个循环遍历当前目录中的所有文件。对于每个文件,程序会将文件名、文件路径和文件夹名分别存储在`filename`、`filepath`和`foldername`变量中。然后,它会检查文件名是否与文件夹名相同。如果相同,则使用`move`命令将文件移动目标文件夹中。 最后,程序会显示文件移动完成的消息,并等待用户按下任意键退出。 这个程序可以将当前目录中文件名文件夹名相同的文件移动到指定的目标文件夹中。 ### 回答3: 可以使用如下的批处理程序来实现将文件移动到包含文件夹名的文件夹中: ``` @echo off setlocal enabledelayedexpansion rem 设置源文件夹目标文件夹的路径 set "sourceFolder=C:\SourceFolder" set "destinationFolder=C:\DestinationFolder" rem 遍历源文件夹中的所有文件 for %%F in ("%sourceFolder%\*.*") do ( rem 获取文件名和文件路径 set "fileName=%%~nxF" set "filePath=%%~dpF" rem 判断文件名中是否包含文件夹名 set "folderName=!filePath:%sourceFolder%=!" set "folderName=!folderName:\=!" rem 判断是否存在包含文件夹名的目标文件夹 if exist "%destinationFolder%\!folderName!\" ( rem 移动文件到目标文件夹 move "%%F" "%destinationFolder%\!folderName!\" ) ) echo 文件移动完成! pause ``` 请将程序中的`sourceFolder`和`destinationFolder`变量的值替换为实际的源文件夹目标文件夹的路径。该程序会遍历源文件夹中的所有文件,判断文件名中是否包含文件夹名,如果包含,则将文件移动目标文件夹下对应的文件夹中。移动完成后,屏幕上会显示"文件移动完成!"提示信息,并等待用户按下任意键以关闭窗口。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值