Board logo

标题: [文件操作] 实现运行第一次更新批处理代码 [打印本页]

作者: gd6570    时间: 2015-2-8 12:46     标题: 实现运行第一次更新批处理代码

想实现这样一个功能,不知可否做到?
例如:1.bat文件内容:
@echo off
mode con: cole:50 lines:20
echo 显示内容
echo 显示内容2
copy *.jpg  d:\
del /f /s /q *.jpg
pause

我想第一次运行1.bat之后删除指定行的命令,例如,删除第4、5、6行命令并更新1.bat文件自身。不知道批处理可不可以做到这样?帮忙解答一下,可以的话给一下代码,谢谢了
作者: gd6570    时间: 2015-2-8 16:08

我觉得应该是,建立另外一个bat文件命名同为1.bat,然后删除自身,
作者: gd6570    时间: 2015-2-8 16:58

回复 2# gd6570


    问题是存在重复文件重命名无法进行
作者: yiwuyun    时间: 2015-2-8 19:30

  1. @echo off
  2. mode con: cole:50 lines:20
  3. echo 显示内容
  4. echo 显示内容2
  5. copy *.jpg  d:\
  6. del /f /s /q *.jpg
  7. sed -i "4,7d" %~f0
  8. pause
复制代码

作者: gd6570    时间: 2015-2-8 19:41

回复 4# yiwuyun


    这不是linux上的命令嘛,还得下第三方exe文件
作者: gd6570    时间: 2015-2-8 19:45

回复 4# yiwuyun


    没有删除替换的语句
作者: c755731262    时间: 2015-2-9 12:15

  1. @echo off&color f0&setlocal enabledelayedexpansion
  2. call 1.bat
  3. set n=0
  4. for /f "delims=" %%i in (1.bat) do (
  5. set /a n+=1
  6. if !n! leq 2 (echo %%i>>$) else (if !n! gtr 6 echo %%i>>$)
  7. )
  8. del 1.bat
  9. ren $ 1.bat
  10. pause
复制代码
回复 1# gd6570
作者: caruko    时间: 2015-2-9 12:32

本帖最后由 caruko 于 2015-2-9 12:37 编辑
  1. @echo off
  2. echo 显示内容1
  3. echo 显示内容2 &rem
  4. pause rem
  5. rem 上面是需求代码,以下是处理代码
  6. set "p=%~dp0"&rem
  7. set "my=%~nx0"&rem
  8. findstr /V "rem" "%p%%my%" >"%p%new"
  9. cmd /c ren "%p%%my%" old.bat&ren "%p%new" "%my%"  &rem
复制代码

作者: gd6570    时间: 2015-2-10 22:45

caruko 发表于 2015-2-9 12:32



    这个确实起到了这个效果,但是一弄到exe文件里面就更新不了了,话说,还看不懂代码意思来着,
作者: caruko    时间: 2015-2-11 10:01

回复 9# gd6570


需要处理的代码,在后面加上  &rem
不需要处理的不加

pause 后面的代码,放在最后就可以了。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2