批处理 复制当前目录(含子目录)下 包含相关中文字符的文件到指定文件夹。
早先有朋友帮我做了这样一个批量重命名的批处理命令很好用……我想在这个方法的基础上实现,批处理复制文件的目的,下面详细说:=========================...
早先有朋友帮我做了这样一个 批量重命名 的批处理命令 很好用……
我想在这个方法的基础上实现,批处理复制文件的目的,下面详细说:
=======================================
打开记事本,把以下共四行代码贴进去(前面不要贴进多余的空行),再打开Excel文件前一列是文件夹里的原名(不要后缀名)相邻列是对应改后的名,(也是不要后缀名)把这两列纯数据区复制,然后粘到刚才贴的代码的下方(可以留有空行),另存为要修改文件的那个文件夹里,保存类型选任意型,文件名 XX.bat 之后双击运行即可
@echo off&color f1&title 改文件名
for /f "tokens=1,2" %%i in ('more +4 "%~0"')do (
if exist "%%i.*" ren "%%i.*" "%%j.*")
echo.改名结束&ping 127.1>nul&exit
====================================
要实现的功能:
--------------------------------
1、写一段类似的代码
2、我可以自在这段代码下粘贴一些中文汉字(一行一个),另存为.bat
3、执行这个.bat后,当前文件夹及所有子文件下包含上述中文汉字的文件都被复制到指定的文件夹(可以是固定的文件夹,如我的文档、提取)
4、像上面的举例一样,不要涉及到扩展名的问题。
--------------------------
这个主要是为给小孩子学习生字,提取不会的文件,每个字一个文件,有了这个批处理命令会方便些,请大家帮忙。
我没分了,拜托了。
类似方法也可以
需要提取文件 的关键字存在TXT里就行 一行一个 展开
我想在这个方法的基础上实现,批处理复制文件的目的,下面详细说:
=======================================
打开记事本,把以下共四行代码贴进去(前面不要贴进多余的空行),再打开Excel文件前一列是文件夹里的原名(不要后缀名)相邻列是对应改后的名,(也是不要后缀名)把这两列纯数据区复制,然后粘到刚才贴的代码的下方(可以留有空行),另存为要修改文件的那个文件夹里,保存类型选任意型,文件名 XX.bat 之后双击运行即可
@echo off&color f1&title 改文件名
for /f "tokens=1,2" %%i in ('more +4 "%~0"')do (
if exist "%%i.*" ren "%%i.*" "%%j.*")
echo.改名结束&ping 127.1>nul&exit
====================================
要实现的功能:
--------------------------------
1、写一段类似的代码
2、我可以自在这段代码下粘贴一些中文汉字(一行一个),另存为.bat
3、执行这个.bat后,当前文件夹及所有子文件下包含上述中文汉字的文件都被复制到指定的文件夹(可以是固定的文件夹,如我的文档、提取)
4、像上面的举例一样,不要涉及到扩展名的问题。
--------------------------
这个主要是为给小孩子学习生字,提取不会的文件,每个字一个文件,有了这个批处理命令会方便些,请大家帮忙。
我没分了,拜托了。
类似方法也可以
需要提取文件 的关键字存在TXT里就行 一行一个 展开
1个回答
展开全部
@echo off&color f1&title 复制指定文件
dir /a-d /s /b>list.lst
for /f "tokens=1,2" %%i in ('more +12 "%~0"') do (
set t=%%i
call:fx
)
del list.lst&echo.指定文件复制成功!&ping 0 -n "3">nul&exit
:fx
for /f "delims=" %%a in ('findstr /i /c:"%t%" "list.lst"') do (
copy "%%~a" D:\BaoCun>nul
)
goto :eof
这里的D:\BaoCun自行修改为你电脑中存在的路径,此路径将会保存复制过来的文件由于copy的局限性,,所以我取消了文件夹名字的分析,,否则代码更长,用的复制指令也就不一样了。
以上代码为12行,要检索的中文字,请在14行开始添加。
dir /a-d /s /b>list.lst
for /f "tokens=1,2" %%i in ('more +12 "%~0"') do (
set t=%%i
call:fx
)
del list.lst&echo.指定文件复制成功!&ping 0 -n "3">nul&exit
:fx
for /f "delims=" %%a in ('findstr /i /c:"%t%" "list.lst"') do (
copy "%%~a" D:\BaoCun>nul
)
goto :eof
这里的D:\BaoCun自行修改为你电脑中存在的路径,此路径将会保存复制过来的文件由于copy的局限性,,所以我取消了文件夹名字的分析,,否则代码更长,用的复制指令也就不一样了。
以上代码为12行,要检索的中文字,请在14行开始添加。
追问
非常感谢,已经测试成功。
思路有一些变化,能不能再帮忙改一下代码:
与.bat同级目录下,设置一个名为 列表.txt 的文件
bat文件运行 调用 列表.txt 实现复制的目的。
列表.txt 文件内的内容 就是 您提示我的 添加到14行后的内容
深表感谢。
追答
for /f "tokens=1,2" %%i in ('more +12 "%~0"') do (
改为
for /f "delims=" %%i in (列表.txt) do (
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询