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

[文本处理] 批处理如何实现首次/第一次运行重命名文件,再次/第二次运行则还原文件名?

[复制链接]
发表于 2010-5-28 15:16:34 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-10-14 13:49 编辑

本人求大牛们给个批使望得到下面的执行效果:
目标文件c:\test\1.gpg,要求使用批处理1.bat重新将1.gpg命名为123.rar.后再运行  1.bat又改回到原来的1.gpg.也就是说使用一个批处理第一次运行把目标文件改名第二次再运行又还原原来的文件名。

[ 本帖最后由 xiewei120120 于 2010-5-28 15:18 编辑 ]
发表于 2010-5-28 16:36:32 | 显示全部楼层
  1. @echo off
  2. findstr /b "::#" "%~fs0">nul&&ren "c:\test\123.rar" "1.gpg"||ren "c:\test\1.gpg" "123.rar"&>>"%~fs0" (echo.&echo.::#)
复制代码
第一次运行时,因为批处理内不存在::#的行而执行ren "c:\test\1.gpg" "123.rar",同时执行echo.&echo.::#输出到批处理中。
以后再运行时,因存在行::#而执行ren "c:\test\123.rar" "1.gpg"。
注意:本批处理只适用于操作两次。

[ 本帖最后由 hanyeguxing 于 2010-5-28 16:37 编辑 ]
 楼主| 发表于 2010-5-28 19:37:08 | 显示全部楼层

已解决

批的功能太强大了谢谢大牛

这个批确实能达到我要求的功能但我测试后发现批在以后的运行后会自动写入::#  这样的话这个批会越来越大,可不可以改进下,在能达到求后不再,生成的的::#.有请 寒夜孤星 兄弟再改进下

[ 本帖最后由 xiewei120120 于 2010-5-28 20:14 编辑 ]
发表于 2010-5-28 20:34:00 | 显示全部楼层
1,这个批处理只会写入1次::#
2,
  1. @echo off
  2. if exist han.h (set/p p=<han.h) else set p=0
  3. if %p%==0 (echo.1) else echo.0)>han.h
  4. if %p%==0 (ren "c:\test\1.gpg" "123.rar") else ren "c:\test\123.rar" "1.gpg"
复制代码
第奇数次运行时,执行ren "c:\test\1.gpg" "123.rar"。
第偶数次运行时,执行ren "c:\test\123.rar" "1.gpg"。
han.h为运行记录文件,使用时间内不能删除。删除后从新开始计算。
发表于 2010-5-29 08:49:25 | 显示全部楼层
  1. @echo off
  2. set "FilePath=c:\test\1.gpg"
  3. set "NewName=123.rar"

  4. for /f "tokens=1,2 delims=|" %%a in ("%FilePath%|%NewName%") do (
  5.     if exist "%%a" (
  6.         ren "%%a" "%%b"
  7.     ) else (
  8.         if exist "%%~dpa%%b" ren "%%~dpa%%b" "%%~nxa"
  9.     )
  10. )
复制代码

[ 本帖最后由 del 于 2010-5-29 08:52 编辑 ]
 楼主| 发表于 2010-5-29 11:38:59 | 显示全部楼层

批太强大了,看了楼上两位仁兄的作品真想好好学习下!!

由于本人水平太差,但现在又有工作生活上的对批的特殊要求所以希望大哥级兄弟们再帮小弟写这样一个批,要求:
1要求一个批隐藏运行,
2:监视QQ进程如果发现有此进程运行则断开网络,如果进程退出则恢复网络

[ 本帖最后由 xiewei120120 于 2010-5-29 11:43 编辑 ]
发表于 2010-5-29 11:45:10 | 显示全部楼层
这实现很简单.但是如果把QQ重命名一下的话.进程里就会有QQ.exe进程了
发表于 2010-5-29 11:52:59 | 显示全部楼层
@echo off
tasklist >> a.txt
type a.txt|find /i "qq.exe" && taskkill /f /im qq.exe || echo 没有
pause
 楼主| 发表于 2010-5-29 12:06:38 | 显示全部楼层
原帖由 小波子 于 2010-5-29 11:52 发表
@echo off
tasklist >> a.txt
type a.txt|find /i "qq.exe" && taskkill /f /im qq.exe || echo 没有
pause



这个批应是查到到QQ的进程并终止,但我想要的是随时监视这个QQ进程只要有就断网,如进程退出了则恢复网络
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 23:33 , Processed in 0.029865 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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