标题: [文件操作] [已解决]迅雷已完成文件复制到Bitcomt过程中变量和语法的问题 [打印本页]
作者: thp2008 时间: 2023-9-19 10:52 标题: [已解决]迅雷已完成文件复制到Bitcomt过程中变量和语法的问题
本帖最后由 thp2008 于 2023-9-19 16:29 编辑
我让Ai给我写了个将迅雷已下载完成的部分(跳过所有.bt.xltd文件),复制到BitComet 继继续下载,同时删除BitComet 同目录下的同名.bc!文件。
1、但是Ai始终写的,都没办法,成功跳过所有.bt.xltd文件
2、就是删除BitComet 同目录下的同名.bc!文件,Ai所始终处理不了.bc!后面这个感叹号。所以无法成功删除。
3、最好帮我加一个判断,就是迅雷已下载完成的,BitComet也完成了的,这种就跳过,不要复制了。也就是,第一段,得出的文件名,加多一个判断,如果在Bitcomt中也存在,并且没有.bc!那就跳过。
Ai也没那么聪明,有些东西,还是要靠各位高手。
帮我看看,修复这些问题。谢谢!- @echo off
- title 将迅雷已下载完成的部分,复制到BitComet 继继续下载,同时删除BitComet 同名.bc!文件。
-
- setlocal enabledelayedexpansion
-
- set xl=F:\XunLei\原创精品电影1000GB电影
- set bt=E:\BitComet\原创精品电影1000GB电影
-
- echo.
-
- rem 递归复制文件和目录结构,排除%xl%目录下的*.bt.xltd文件
- echo 正在检查并移动文件...
- for /r "%xl%" %%i in (*) do (
- set "exclude=%%i"
- if "!exclude!" neq ".bt.xltd" (
- set "source=%%i"
- set "destination=!source:%xl%=%bt%!"
- for %%d in (!destination!) do (
- set "destination=%%~dpd"
- )
-
- rem 检查BitComet目录是否存在同名的.bc!文件
- set "bcfile=!destination!%%~nxi.bc^!"
-
- if exist "!bcfile!" (
- echo 删除已存在的.bc!文件: !bcfile!
- del "!bcfile!"
- )
-
- rem 创建目标目录(如果不存在)
- if not exist "!destination!" (
- mkdir "!destination!"
- )
-
- rem 复制文件到目标目录
- copy "!source!" "!destination!"
- )
-
- )
-
- echo.
- echo 文件移动完成!
- pause
-
- endlocal
复制代码
作者: Batcher 时间: 2023-9-19 11:06
回复 1# thp2008
请把迅雷和BitComet的目录结构打包上传到网盘
1、全部使用0字节空文件,只需要文件名说清楚对应关系即可
2、包含顶楼描述的所有场景
作者: thp2008 时间: 2023-9-19 11:33
https://netcut.cn/bathome
打开后,在中间,选“文件(1个)”下载链接在下面
作者: Batcher 时间: 2023-9-19 14:49
回复 3# thp2008
请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA- @echo off
- set "xl=F:\XunLei\原创精品电影1000GB电影"
- set "bt=E:\BitComet\原创精品电影1000GB电影"
- echo 正在检查并移动文件...
- for /f "delims=" %%i in ('dir /b /s /a-d "%xl%" ^| findstr /v /i /e /c:".bt.xltd"') do (
- set "SourceFolder=%%~dpi"
- set "SourceFile=%%~nxi"
- set "bcfile=%%~nxi.bc!"
- setlocal enabledelayedexpansion
- set "DestinationFolder=!SourceFolder:%xl%=%bt%!"
- if exist "!DestinationFolder!" (
- if exist "!DestinationFolder!!SourceFile!" (
- REM 检查BitComet目录是否存在同名的.bc!文件
- if exist "!DestinationFolder!!bcfile!" (
- del /f /q "!DestinationFolder!!bcfile!"
- copy /y "!SourceFolder!!SourceFile!" "!DestinationFolder!"
- )
- ) else (
- copy /y "!SourceFolder!!SourceFile!" "!DestinationFolder!"
- )
- ) else (
- md "!DestinationFolder!"
- copy /y "!SourceFolder!!SourceFile!" "!DestinationFolder!"
- )
- endlocal
- )
- pause
复制代码
作者: terse 时间: 2023-9-19 15:24
xcopy /t 可以复制文件结构,而不复制文件,这样在后面时候可以少个判断- @echo off
- set "xl=F:\XunLei\原创精品电影1000GB电影\"
- set "bt=E:\BitComet\原创精品电影1000GB电影\"
- xcopy "%xl%" "%bt%" /T /Y
- for /f "delims=" %%i in ('dir /a-d /b /s "%xl%"^|findstr /ilve ".bt.xltd"') do (
- set "exclude=%%i"
- setlocal enabledelayedexpansion
- for /f "delims=" %%a in ("!exclude:%xl%=%bt%!") do (
- endlocal
- if exist "%%a.bc!" del "%%a.bc!"
- if not exist "%%a" copy "%%i" "%%a" /b /y
- )
- )
- pause
复制代码
作者: thp2008 时间: 2023-9-19 16:27
回复 thp2008
请参考Q-04把bat文件保存为ANSI编码:
Batcher 发表于 2023-9-19 14:49
感谢老大,我测试了一下,基本上可行,只是有一点小逻辑性问题:
就是我需要运行两次这个批处理才能满足要求,第一次,不能删除,复制过去的文件.bc!
再运行一次就删除了。但是两次运行都会再复制一次,测试的小文件,没关系,但是大文件,就很浪费时间。我根据你提供的代码 ,修改了一下,已经可以了。- @echo off
- set "xl=F:\XunLei\原创精品电影1000GB电影"
- set "bt=E:\BitComet\原创精品电影1000GB电影"
- echo 正在检查并移动文件...
- for /f "delims=" %%i in ('dir /b /s /a-d "%xl%" ^| findstr /v /i /e /c:".bt.xltd"') do (
- set "SourceFolder=%%~dpi"
- set "SourceFile=%%~nxi"
- set "bcfile=%%~nxi.bc!"
- setlocal enabledelayedexpansion
- set "DestinationFolder=!SourceFolder:%xl%=%bt%!"
- if not exist "!DestinationFolder!" md "!DestinationFolder!"
- if exist "!DestinationFolder!!bcfile!" (
- echo 删除BitComet目录已存同名的.bc!文件: "!DestinationFolder!!bcfile!"
- del /f /q "!DestinationFolder!!bcfile!"
- )
-
- if not exist "!DestinationFolder!!SourceFile!" (
- echo 开始复制文件: "!SourceFolder!!SourceFile!" "!DestinationFolder!"
- copy /y "!SourceFolder!!SourceFile!" "!DestinationFolder!"
- )
-
- endlocal
- )
- pause
复制代码
作者: thp2008 时间: 2023-9-19 16:41
其实,在这种案例中,不需要考虑目录结构,因为BitComet在下载开始的时候,将所有目录结构都创建完成了,只是迅雷才会下一点,建一点。但是我是要求从迅雷复制到BitComet单向复制,所以就不用考虑到建目录结构,也没有关系,是我没有讲请楚,我之前的版本,Ai帮我自动做上去的,它也可能不清楚,是这么回事。
作者: 77七 时间: 2023-9-20 22:08
- @echo off
- set "f1=d:\XunLei"
- set "f2=d:\BitComet"
- robocopy "%f1%" "%f2%" /s /xc /xn /xo /xf *.bt.xltd
- for /r "%f2%" %%i in (*.bc!) do (
- if exist "%%~dpni" (
- del "%%i"
- )
- )
- pause & exit
-
-
- xunlei
- 1221.txt.bt.xltd
- 更多电影下载请进www..com.rar
-
- bitcomt
- 1221.txt.bc!
- 更多电影下载请进www..com.rar.bc!
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |