找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23354|回复: 2

[文件操作] [已解决]批处理命令copy链接文件的区别

[复制链接]
发表于 2015-5-30 10:44:14 | 显示全部楼层 |阅读模式
本帖最后由 mqyphts 于 2015-6-10 08:44 编辑

自己写了一段代码,目的是在文件头添加上当前的时间 和文件名
代码一如下

  1. ::apend filename and time in the file head
  2. @echo off
  3. setlocal enabledelayedexpansion
  4. echo starting..
  5. set extention=.txt
  6. set t=%date%  %time%
  7. for /f "delims=" %%n in ('dir /b *%extention%') do (
  8. set a=%%n
  9. echo ::%t% !a!>tmp
  10. echo. >>tmp
  11. copy  tmp+"!a!" "!a!"
  12. )
  13. set extention=
  14. set a=
  15. del /f /q tmp
  16. echo finished.
  17. pause
复制代码
可是经过测试,copy之后生成的文件只有tmp里的内容,不知道怎么回事
网上搜索资料,修改代码如下即可达到的
修改之后的代码

  1. ::apend filename and time in the file head
  2. @echo off
  3. setlocal enabledelayedexpansion
  4. echo starting..
  5. set extention=.txt
  6. set t=%date%  %time%
  7. for /f "delims=" %%n in ('dir /b *%extention%') do (
  8. set a=%%n
  9. echo ::%t% !a!>tmp
  10. echo. >>tmp
  11. copy  tmp+"!a!" temp
  12. del /f /q "!a!"
  13. ren temp "!a!"
  14. )
  15. set extention=
  16. set a=
  17. del /f /q tmp
  18. echo finished.
  19. pause
复制代码
修改的地方主要是for循环里的语句,增加了一个临时文件,然后将临时文件重命名,但是使用
#########
copy  tmp+"!a!" "!a!"
######
copy  tmp+"!a!" temp
del /f /q "!a!"
ren temp "!a!"
######
这两者的区别是什么呢
初学者求教。

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2015-5-30 16:15:39 | 显示全部楼层
本帖最后由 Bella 于 2015-5-31 00:24 编辑

copy读取前会新建一个空的目标文件,如果有重名就直接清空了,所以你读不到源文件的内容.
  1. @echo off
  2. for /f "delims=" %%a in ('dir /b *.txt') do (
  3.     (
  4.         echo ::%date% %time% %%a
  5.         echo;
  6.         type "%%a"
  7.     ) > tmp
  8.     move tmp "%%a" > nul
  9. )
  10. pause



复制代码

评分

参与人数 1技术 +1 收起 理由
mqyphts + 1 实力讲解

查看全部评分

 楼主| 发表于 2015-5-30 19:18:22 | 显示全部楼层
回复 2# Bella


    谢谢啊,你讲的很清楚,我懂了。而且你的代码更精练。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 02:26 , Processed in 0.017733 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表