zoukankan      html  css  js  c++  java
  • [批处理]手动伪造相机自动编号

    前几日突然发现我的相机出问题了,无法识别SD卡,但是SD卡可以被电脑识别,以为相机坏了

    然后去Canon售后一看原来是卡的问题,换了张卡就没事了,虽然不明白这是为什么,但好在相机没坏比什么都好

    去电子城买了张8GSD卡后一切回归正常,直到今天早上。。。。

    突然在从相机里复制照片到电脑时被提示有重名是否替换?

    这时才突然发现,在佳能工程师给我修得时候应该是按了系统复位,把原来的相机编号清空了,相机又开始从0001开始编号

    这就导致我很多以前的照片没有办法在存放现在的照片了,因为有的文件名重复了,需要复制前还要改名

    这事件多么庞大工作量的工作啊。。。。 

    现在相机编号到3000多,难道再让我去空照3千多张照片么= =

    遂想如果骗过相机,已经照了三千多张了,实验发现非常简单,

    只要有重复的文件名,相机就会自动将编号加一,直到没有重复文件名为止

    这就简单了,只要我手动构造出这三千的张照片,骗过相机从三千多位置开始编号即可

    遂有了以下这个玩意,核心代码只有一行命令,但为了让其更有通用性,增加了很多其它代码

    ========================================

    输入要生成的编号的起始和结束值,这里以从97开始到102结束为例子

    重复字符就是每个文件名都相同的字符,要替换的数值用#号代替

    如果文件名是IMG_0032.jpg,那么重复字符就是“IMG_#.jpg”

    生成结果如下图:

    所有创建出来的都是0字节空文件,即使创建几万个文件也不占任何空间!

    此BAT关键点在于生成数值的前导“0”,如下图经测试在衔接点处没有任何问题

    这里以我相机为例子用4位数值来表示,如果有其他位数的,可自行设置,

    下面有更改方法

     顺利的将相机骗到了3000号+(手机拍照太不给力了...)

    批处理代码,保存至bat文件运行即可:

    @echo off
    title 自动生成空编号文件  小小沧海&setlocal enabledelayedexpansion
    echo =========自动生成空编号文件=============
    :start
    echo 请输入起始编号:(回车确认)
    set /p start=
    if /i %start% lss 1 echo 【错误】起始编号错误,请重新输入&pause>nul&cls&goto start
    
    :end
    echo 请输入结束编号:
    set /p end=
    if /i %end% lss %start% echo 【错误】结束编号应该大于起始编号,请重新输入&pause>nul&cls&goto end
    if /i %end% lss 1000 set zero=0
    if /i %end% lss 100 set zero=00
    if /i %end% lss 10 set zero=000
    
    :string
    echo 请输入重复字符,编号部分用#号代替:(如IMG_0032.jpg则重复字符为IMG_#.jpg,默认数值4位)
    set /p string=
    if %string%==%string:#=% echo 【错误】没有#号可替换部分&pause>nul&cls&goto string
    
    :dest
    echo 请输入目标路径:(可直接将目录拖放至此处)
    set /p dest=
    echo ====================
    echo 开始生成文件......
    cd 1>nul 2>"%dest:"=%	emp"
    ::此处修改前导0个数,如果是3位则把下面一句geq 1000改为geq 100
    ::再将lss 1000这行去掉,并把余下两行最后的zero=后面的0分别去掉一个即可
    for /l %%i in (%start%,1,%end%) do (
      if /i %%i geq 1000 set zero=
      if /i %%i lss 1000 set zero=0
      if /i %%i lss 100 set zero=00
      if /i %%i lss 10 set zero=000
      set filename=!zero!%%i
      copy "%dest:"=%	emp" "%dest:"=%\%string:#=!filename!%" 1>nul
      echo 生成文件%%i/%end%
    )
    del "%dest:"=%	emp"
    echo.&echo 完成!
    echo 按任意键退出
    pause>nul
    View Code

    ——原文发表于2012-1-21 11:41

  • 相关阅读:
    day 66 crm(3) 自创组件stark界面展示数据
    day 65 crm(2) admin源码解析,以及简单的仿造admin组件
    用 Python+nginx+django 打造在线家庭影院
    django -admin 源码解析
    day 64 crm项目(1) admin组件的初识别以及应用
    云链接 接口不允许 情况 解决方法 mysql Host is not allowed to connect to this MySQL server解决方法
    day 56 linux的安装python3 ,虚拟环境,mysql ,redis
    day55 linux 基础以及系统优化
    Codeforces 989 P循环节01构造 ABCD连通块构造 思维对云遮月参考系坐标轴转换
    Codeforces 990 调和级数路灯贪心暴力 DFS生成树两子树差调水 GCD树连通块暴力
  • 原文地址:https://www.cnblogs.com/xxcanghai/p/4583884.html
Copyright © 2011-2022 走看看