本帖最后由 思想之翼 于 2015-10-5 19:40 编辑
1、先前的问题:
D:/数据/内有若干bat,每个bat的代码位置固定,比如:
001.bat代码内容为:
@echo off
type d:\数据三\1温湿度\1_001\lishi\wj记录时间.txt>d:\数据三\统计A\001.txt
exit
复制若干上述bat,并将名称改成了002.bat 003.bat ....210.bat
现在需要根据bat的不同数字名称,批量修改bat指定位置的代码内容:
将002.bat的代码修改为:
@echo off
type d:\数据三\1温湿度\1_002\lishi\wj记录时间.txt>d:\数据三\统计A\002.txt
exit
将003.bat的代码修改为:
@echo off
type d:\数据三\1温湿度\1_003\lishi\wj记录时间.txt>d:\数据三\统计A\003.txt
exit
....
这样的批处理如何写?
2、已解决的思路:- @echo off
- setlocal enabledelayedexpansion
- cd /d "D:\数据\"
- for /l %%a in (1001 1 1210) do (
- set "num=%%a"
- >"!num:~1!.bat" echo,@echo off
- >>"!num:~1!.bat" echo,type D:\数据三\1温湿度\1_!num:~1!\lishi\wj记录时间.txt^>D:\数据三\统计A\!num:~1!.txt
- >>"!num:~1!.bat" echo,exit
- )
- pause
复制代码 3、现在套用上述思路的疑问:
为什么下述代码,套用这一方法,不能运行?
@echo off
for /f "skip=1 delims=" %%i in ('dir /b /a-d /o-n /s "d:\分解\数据1\0001\lishi\*.txt"') do (
copy "%%i" "d:\分解\数据2\0001.txt"
goto :eof
)
@echo off
for /f "skip=1 delims=" %%i in ('dir /b /a-d /o-n /s "d:\分解\数据1\0002\lishi\*.txt"') do (
copy "%%i" "d:\分解\数据2\0002.txt"
goto :eof
)
......
@echo off
for /f "skip=1 delims=" %%i in ('dir /b /a-d /o-n /s "d:\分解\数据1\1330\lishi\*.txt"') do (
copy "%%i" "d:\分解\数据2\1330.txt"
goto :eof
)- @echo off
- setlocal enabledelayedexpansion
- cd /d "D:\分解\数据\"
- for /l %%a in (10001 1 11330) do (
- set "num=%%a"
- >"num:~1!.bat" echo,@echo off
- >>"!num:~1!.bat" echo,for /f "skip=1 delims=" %%i in ('dir /b /a-d /o-n /s "d:\分解\数据1\!num:~1!\lishi\*.txt"') do (
- >>"!num:~1!.bat" echo, copy "%%i" "d:\分解\数据2\!num:~1!.txt"
- >>"!num:~1!.bat" echo, goto :eof
- >>"!num:~1!.bat" echo,)
- )
- pause
复制代码
|