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

[练习]批处理实现文件的伪装与解除伪装

[复制链接]
发表于 2010-2-11 09:10:23 | 显示全部楼层 |阅读模式
从前有个硬盘,硬盘里有个文件夹,
文件夹里面有个批处理, 剩下的全是jpg文件,批处理的功能是:
   通过修改格式伪装jpg文件,再次执行的时候能够自行判断并恢复为jpg格式。
   现在假设是伪装成kpg格式(应该是空格式),
   题目就是做一个这样的批处理:
         第一次打开的时候伪装当前目录的jpg文件
         第二次恢复,第三次又伪装....以此类推。

  温馨提示,换一种描述可能使代码更简单,看情况给分。
   (如果你在linux桌面,这个伪装无效,那家伙直接分辨内容的,我"伪装"的图片一览无遗……)
  
ok,继续讲故事:文件夹里有个文件夹,文件夹里有个文件夹……

[ 本帖最后由 523066680 于 2010-2-11 09:18 编辑 ]

评分

参与人数 1技术 +1 收起 理由
Hello123World + 1 这个题目出的犀利,可以用来加密文件。

查看全部评分

发表于 2010-2-11 09:44:05 | 显示全部楼层
换一种描述?j与k的互换?
 楼主| 发表于 2010-2-11 10:03:40 | 显示全部楼层
反正有兴趣的同学先做做看咯~

我顶! 继续等。

[ 本帖最后由 523066680 于 2010-2-11 12:21 编辑 ]
发表于 2010-2-11 12:40:58 | 显示全部楼层
我等等再发吧~Hoho~
发表于 2010-2-11 14:57:21 | 显示全部楼层

很简单啊

@echo off
dir *.jpg&if /i %errorlevel%==1 exit
ren *.jpg *.kpg&exit

评分

参与人数 1PB +6 收起 理由
523066680 + 6 感谢回帖,不够简单,哈哈

查看全部评分

发表于 2010-2-12 01:20:34 | 显示全部楼层
初始时为jpg.bat
  1. @echo off
  2. if "%~n0" equ "jpg" (
  3.    ren *.jpg *.kpg&ren %0 kpg.bat
  4.    ) else (
  5.    ren *.kpg *.jpg&ren %0 jpg.bat
  6. )
复制代码
发表于 2010-2-12 05:05:54 | 显示全部楼层
  1. @echo off
  2. ren "*.jpg" "*.KJP" &&goto end
  3. ren "*.KJP" "*.jpg" &&goto end
  4. :end
  5. pause
复制代码

  1. @echo off
  2. ren "*.jpg" "*.KJP" &&exit
  3. ren "*.KJP" "*.jpg" &&exit
复制代码

  1. @echo off
  2. ren "*.jpg" "*.KJP" ||ren "*.KJP" "*.jpg"
复制代码

[ 本帖最后由 hfg1977 于 2010-2-12 05:12 编辑 ]

评分

参与人数 3PB +13 技术 +1 收起 理由
Hello123World + 1 &&,||在你手中涅槃重生了。
523066680 + 8 全都有了
Seter + 5 好!

查看全部评分

发表于 2010-2-12 09:06:09 | 显示全部楼层
我想到的是楼上的第三种方法~前两种多了一行 = = 哈哈
不过LS有错误哦
  1. @echo off
  2. ren "*.jpg" "*.KPG" ||ren "*.KPG" "*.jpg"
复制代码
发表于 2010-2-12 09:43:15 | 显示全部楼层
个人建议不用管道命令。
 楼主| 发表于 2010-2-12 10:01:57 | 显示全部楼层
原帖由 batman 于 2010-2-12 09:43 发表
个人建议不用管道命令。


-----------------------为什么--------------
发表于 2010-2-18 12:40:23 | 显示全部楼层
原帖由 batman 于 2010-2-12 09:43 发表
个人建议不用管道命令。


"||"是逻辑判断标记 不是管道.
"|"这个才是管道.

RE:楼下
&&
① 连接两个命令,当&&前的命令成功时,才执行&&后的命令。

||
① 连接两个命令,当||前的命令失败时,才执行||后的命令。

|
① 管道符,就是将上一个命令的输出,作为下一个命令的输入."dir /a/b |more"就可以逐屏的显示dir命令所输出的信息。
② 在set/a中的二元运算符,表示按位或。
③ 在帮助文档中表示其前后两个开关、选项或参数是二选一的。

[ 本帖最后由 hfg1977 于 2010-2-18 15:47 编辑 ]

评分

参与人数 1PB +4 收起 理由
PakTC + 4 太对头了!

查看全部评分

发表于 2010-2-18 14:41:42 | 显示全部楼层

回复 11楼 的帖子

因为两个符号很相似 我看到batman说是管道的时候也没想出来
简洁答案中给出的|| 根本不是管道“|" 而是 "或"  。

[ 本帖最后由 PakTC 于 2010-2-18 14:43 编辑 ]
发表于 2010-3-23 23:25:04 | 显示全部楼层
  1. (ren *.jpg*.kpg ||  ren *.kpg *.jpg) >nul 2>nul
复制代码
好久没来了,退步了,前面在打基础,现在再不加深又要重新学了。
发表于 2010-3-23 23:30:35 | 显示全部楼层
没想到和楼主想到一块去了,不过,我应该象你们一样加上界定符""就更好了。
发表于 2010-3-23 23:33:07 | 显示全部楼层

回复 6楼 的帖子

同样是完成任务, batman就不一样,连bat也跟着变,漂亮!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 07:48 , Processed in 0.012860 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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