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

[文件操作] 实现运行第一次更新批处理代码

[复制链接]
发表于 2015-2-8 12:46:01 | 显示全部楼层 |阅读模式
想实现这样一个功能,不知可否做到?
例如: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文件自身。不知道批处理可不可以做到这样?帮忙解答一下,可以的话给一下代码,谢谢了
 楼主| 发表于 2015-2-8 16:08:31 | 显示全部楼层
我觉得应该是,建立另外一个bat文件命名同为1.bat,然后删除自身,
 楼主| 发表于 2015-2-8 16:58:24 | 显示全部楼层
回复 2# gd6570


    问题是存在重复文件重命名无法进行
发表于 2015-2-8 19:30:42 | 显示全部楼层

  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
复制代码
 楼主| 发表于 2015-2-8 19:41:22 | 显示全部楼层
回复 4# yiwuyun


    这不是linux上的命令嘛,还得下第三方exe文件
 楼主| 发表于 2015-2-8 19:45:20 | 显示全部楼层
回复 4# yiwuyun


    没有删除替换的语句
发表于 2015-2-9 12:15:11 | 显示全部楼层
  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
发表于 2015-2-9 12:32:48 | 显示全部楼层
本帖最后由 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
复制代码
 楼主| 发表于 2015-2-10 22:45:59 | 显示全部楼层
caruko 发表于 2015-2-9 12:32



    这个确实起到了这个效果,但是一弄到exe文件里面就更新不了了,话说,还看不懂代码意思来着,
发表于 2015-2-11 10:01:16 | 显示全部楼层
回复 9# gd6570


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

pause 后面的代码,放在最后就可以了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 17:55 , Processed in 0.019045 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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