本帖最后由 mqyphts 于 2015-6-10 08:44 编辑
自己写了一段代码,目的是在文件头添加上当前的时间 和文件名
代码一如下- ::apend filename and time in the file head
- @echo off
- setlocal enabledelayedexpansion
- echo starting..
- set extention=.txt
- set t=%date% %time%
- for /f "delims=" %%n in ('dir /b *%extention%') do (
- set a=%%n
- echo ::%t% !a!>tmp
- echo. >>tmp
- copy tmp+"!a!" "!a!"
- )
- set extention=
- set a=
- del /f /q tmp
- echo finished.
- pause
复制代码 可是经过测试,copy之后生成的文件只有tmp里的内容,不知道怎么回事
网上搜索资料,修改代码如下即可达到的
修改之后的代码- ::apend filename and time in the file head
- @echo off
- setlocal enabledelayedexpansion
- echo starting..
- set extention=.txt
- set t=%date% %time%
- for /f "delims=" %%n in ('dir /b *%extention%') do (
- set a=%%n
- echo ::%t% !a!>tmp
- echo. >>tmp
- copy tmp+"!a!" temp
- del /f /q "!a!"
- ren temp "!a!"
- )
- set extention=
- set a=
- del /f /q tmp
- echo finished.
- pause
复制代码 修改的地方主要是for循环里的语句,增加了一个临时文件,然后将临时文件重命名,但是使用
#########
copy tmp+"!a!" "!a!"
######
copy tmp+"!a!" temp
del /f /q "!a!"
ren temp "!a!"
######
这两者的区别是什么呢
初学者求教。 |