标题: [文件操作] 全盘搜索文件的批处理代码 独自放在外面可以复制所以文件 和其他放在一起就不行 [打印本页]
作者: ningl 时间: 2015-9-30 09:24 标题: 全盘搜索文件的批处理代码 独自放在外面可以复制所以文件 和其他放在一起就不行
- @echo off
- setlocal enabledelayedexpansion
- set /p "zf= 输入字符(如 *.txt;a*.txt;???s.*):"
- set /p "lj= 设置你要备份的路径(如 c:\):"
- echo 正在全盘搜索......
- md "%lj%"
- for %%a in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do (
- if exist %%a:\ (
- for /f "tokens=*" %%i in ('dir /a /b /s "%%a:\%zf%"') do (
- if exist "%lj%\%%~nxi" (
- call :GetNewName "%%~nxi"
- echo f | xcopy /h /y "%%i" "%lj%\!NewFile!"
- ) else (
- xcopy /h /y "%%i" "%lj%\"
- )
- )
- )
- )
-
- :GetNewName
- set "name=%~n1"
- set "ext=%~x1"
- set n=1
- :LoopName
- if exist "%lj%\%name%_!n!%ext%" (
- set /a n+=1
- goto :LoopName
- )
- set NewFile=%name%_!n!%ext%
复制代码
上面的能运行 可是我把跟他其他的放在一起之后复制代码
搜索就不完全了
作者: DAIC 时间: 2015-9-30 09:31
goto zdy
:GetNewName
set "name=%~n1"
set "ext=%~x1"
set n=1
:LoopName
if exist "%lj%\%name%_!n!%ext%" (
set /a n+=1
goto :LoopName
)
set NewFile=%name%_!n!%ext%
pause>nul
把 goto zdy 往上挪
作者: 回家路上 时间: 2015-9-30 09:45
复制代码
改成复制代码
作者: ningl 时间: 2015-9-30 09:55
回复 2# DAIC
移到哪里?
作者: ningl 时间: 2015-9-30 09:57
回复 3# 回家路上
goto eof? 都没有eof啊
作者: 回家路上 时间: 2015-9-30 10:10
本帖最后由 回家路上 于 2015-9-30 10:25 编辑
我的建议你试了吗?。。。。。。
看我说怎么你那800多行脚本大量重复,也不把大段大段相同的东西抽取一下,原来不知道goto :eof,
eof估计意思是“end of file”。goto :eof 就是跳转到批处理文件结尾
DAIC都标红字你都看不到(⊙﹏⊙)b
另外,发脚本的话最好用code标签将其括起来,就会有像我上面的那种格式。特别是你发的这种大段的(中间还有文字叙述,猛一看我还以为就发了这么长一段代码呢)
http://www.bathome.net/viewthread.php?tid=404&highlight=code
作者: DAIC 时间: 2015-9-30 10:16
回复 4# ningl
移到红字那个地方
作者: ningl 时间: 2015-9-30 11:36
回复 6# 回家路上
我只学我需要的
作者: ningl 时间: 2015-9-30 11:40
回复 7# DAIC
哦 我试试
作者: ningl 时间: 2015-9-30 11:45
回复 6# 回家路上
你的建议到底是什么嘛
作者: ningl 时间: 2015-9-30 11:45
回复 7# DAIC
还是不行
作者: ningl 时间: 2015-9-30 11:46
回复 3# 回家路上
好了 谢谢
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |