标题: [文本处理] 【已解决】批处理for /f 循环语句判断问题 [打印本页]
作者: qw123456 时间: 2024-8-30 01:14 标题: 【已解决】批处理for /f 循环语句判断问题
- @echo off
- setlocal enabledelayedexpansion
- set /a a=1
- for /f "delims=" %%i in (urls.txt) do (
- for /f %%j in ("%%i\..\..") do set "aa=%%~nxj" & md "%%~nxj" 2>nul
- dezoomify-rs -l --accept-invalid-certs -H "Cookie: SSO_SESSIONID=FDDC5D671B873413C25B83569579A723" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36" %%i !aa!/!a!.jpg
- set /a a+=1
- timeout /t 0
- )
-
- pause
复制代码
代码没有问题,但有个小的bug。
urls.txt 内容给为:C:\Users\Administrator\Desktop\1\5976\1\tiles.yaml
C:\Users\Administrator\Desktop\1\5976\2\tiles.yaml
C:\Users\Administrator\Desktop\1\5976\3\tiles.yaml
C:\Users\Administrator\Desktop\1\5977\4\tiles.yaml
C:\Users\Administrator\Desktop\1\5977\5\tiles.yaml
C:\Users\Administrator\Desktop\1\5977\6\tiles.yaml
C:\Users\Administrator\Desktop\1\5977\7\tiles.yaml
最终新建了5976 5977 两个文件夹 ,a的值为a+=1 ,图片最终保存到 5976 5977里面的,能否判断保存文件夹发生变化时a重新赋值为1
作者: Five66 时间: 2024-8-30 02:14
这样子么?- @echo off
- setlocal enabledelayedexpansion
- rem set /a a=1
- for /f "delims=" %%i in (urls.txt) do (
- for /f %%j in ("%%i\..\..") do (
- set "aa=%%~nxj"
- if not defined ___"%%~nxj" set ___"%%~nxj"=1
- md "%%~nxj" 2>nul
- dezoomify-rs -l --accept-invalid-certs -H "Cookie: SSO_SESSIONID=FDDC5D671B873413C25B83569579A723" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36" %%i !aa!/!___"%%~nxj"!.jpg
- set ___tmp=!___"%%~nxj"!
- set /a ___tmp+=1
- set ___"%%~nxj"=!___tmp!
- timeout /t 0
- )
- )
-
- pause&exit/b
复制代码
作者: qixiaobin0715 时间: 2024-8-30 08:51
回复 1# qw123456
在你的代码的基础上,按你的风格修改一下:- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in (urls.txt) do (
- for /f %%j in ("%%i\..\..") do (
- if not exist "%%~nxj" (
- md "%%~nxj"
- set "aa=%%~nxj"
- set a=1
- )
- dezoomify-rs -l --accept-invalid-certs -H "Cookie: SSO_SESSIONID=FDDC5D671B873413C25B83569579A723" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36" %%i !aa!/!a!.jpg
- set /a a+=1
- timeout /t 0
- )
- )
- pause
复制代码
作者: qw123456 时间: 2024-8-30 10:30
回复 3# qixiaobin0715
你好!首先感谢你能回复,还有一点小毛病,就是下载的都跑盘符根目录下了,,意思就是 echo !aa! 输出不了结果
作者: qw123456 时间: 2024-8-30 10:32
回复 3# qixiaobin0715
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in (urls.txt) do (
for /f %%j in ("%%i\..\..") do (
if not exist "%%~nxj" (
md "%%~nxj"
set "aa=%%~nxj"
set a=1
)
echo !aa!
set /a a+=1
timeout /t 0
)
)
pause
作者: qw123456 时间: 2024-8-30 10:40
回复 3# qixiaobin0715
找到错误了谢谢大佬
作者: Five66 时间: 2024-8-30 11:01
单纯的设置a=1 , 当urls.txt中对应的内容不连续时可能不是你想要的
例如 , urls.txt为下面这样的内容
C:\Users\Administrator\Desktop\1\5976\1\tiles.yaml
C:\Users\Administrator\Desktop\1\5977\4\tiles.yaml
C:\Users\Administrator\Desktop\1\5977\5\tiles.yaml
C:\Users\Administrator\Desktop\1\5976\2\tiles.yaml
C:\Users\Administrator\Desktop\1\5976\3\tiles.yaml
C:\Users\Administrator\Desktop\1\5977\6\tiles.yaml
C:\Users\Administrator\Desktop\1\5977\7\tiles.yaml
作者: qixiaobin0715 时间: 2024-8-30 11:20
其实写代码不能面面俱到,按正常情况写就行。如果考虑过多,会增加代码的复杂性,效率也会降低,也不见得能包含所有特殊情况,遇到问题解决问题就是了。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |