精华内容
下载资源
问答
  • Ubuntu上批量修改空格等特殊字符的文件名 网上提供了一些批量修改文件名的方法,但如果牵涉到空格、单引号等特殊字符,则可能不一定能成功。下面的例子是把所有子目录下.mv文件修改成.wav文件。笔者试过,效果不错...

    Ubuntu上批量修改含空格等特殊字符的文件名


    网上提供了一些批量修改文件名的方法,但如果牵涉到空格、单引号等特殊字符,则可能不一定能成功。下面的例子是把所有子目录下.mv文件修改成.wav文件。笔者试过,效果不错:

    find -name *.wv -exec rename 's/\.wv$/\.wav/' '{}' \;
    
    展开全文
  • 在shell脚本中利用for循环批量重命名含有空格文件名的文件
    今天在学习shell脚本攻略第二章2.13 批量重命名和移动时,由于我的文件命令有的文件名字中有空格,出现问题

    问题代码

    #!/bin/bash
    #图片批量重命名
    count=1;
    for img in `find . -name "*.png" -o -name -maxdepth 1 -type f`
    do
            echo $count
            new="img-${count}.${img##*.}"
            echo renaming $img: $new
            mv "$img" $new
            let count++
    done
    IFS=$OLDIFS
    

    最终成功代码

    #!/bin/bash
    #filename: img.sh
    #图片批量重命名
    count=0;
    list=`find . -name "*.jpg" -o -name "*.png" -maxdepth 1 -type f -print`
    OLDIFS=$IFS
    IFS=$'\n'
    for img in $list
    do
            echo $count
            new="img-${count}.${img##*.}"
            img=${img// /\\ }
            echo $img
            echo $new
            echo renaming $img: $new
            eval mv "$img" $new
            let count=count+1
    done
    IFS=$OLDIFS
    

    寻找最终成果的步骤

    步骤一

    思路: 由于在shell中运行此脚本时,发现将找到的文件名按照空格分割开来,结果利用for循环时,每一个文件名被打散,例如’./Screenshot from 2017-09-22 14-43-51.png’ 拆分成了’./Screenshot\ ’ ‘from’ ‘2017-09-22’等,所以执行错误. 所以在解决该问题时的第一个思路就是将文件名正确的读出来.
    解决方案: 将
    find . -name "*.png" -o -name -maxdepth 1 -type f
    改为
    find . -name "*.png" -o -name -maxdepth 1 -type f -print
    原因: find -print 会将每一个查询出来的文件通过换行符分割开
    结果: 依然不行,但是在shell中直接输入该命令,确实是换行输出

    步骤二

    思路: 虽然输出是换行输出,但是是for循环在读入的时候是从一个大字符串中进行分割,而分割的标识是IFS,IFS默认分隔符是空格\tab\换行,所以会将换行符和空格同样对待,所以需要更改IFS的分割标志.
    解决方案:添加代码

    OLDIFS=$IFS
    IFS=$'\n'
    IFS=$OLDIFS
    

    注意: 这里将IFS的分割标志换成了 $’\n’ 换行符,如果写成’\n’仅仅表示字母n
    结果: 每一次for循环能够得到正确的文件名,但是在执行mv命令时依然报错,原因是文件名中有空格,不能找到正确的文件

    步骤三

    思路: 在shell中直接执行mv命令,会把文件名中带有空格的文件的文件名的空格进行转译,即将’ ‘转成’\ ‘.所以这一步的思路就是得到转译之后的文件名
    解决方案:添加代码

    img=${img// /\\ }
    

    结果: 可以将文件名正确的转换成转译之后的文件名,但是依然不能正确运行,shell中提示的错误信息是

    mv: cannot stat './Screenshot\ from\ 2017-09-22\ 14-43-51.png': No such file or directory
    

    但是我直接用这个文件名进行mv命令操作是可以进行的,所以这个时候进行最后一步

    步骤四

    思路: 得到了正确的文件名,但是不能正确的执行mv操作,那么问题就在脚本的这个命令上

    mv "$img" $new
    

    所以我在mv前面加上了一个预处理的命令 eval

    eval mv "$img" $new
    

    mv命令在执行前会先执行eval命令,将变量的值转换过来,然后在执行,最后得到了正确的结果

    知识点

    在完成整个文件批量重命名的过程中主要用到了一下几个知识
    1. find -print 和-print0
    2. IFS 分隔符
    3. 字符串替换的方法
    4. eval命令
    5. 以后命名的时候千万不要在带空格了,很麻烦

    展开全文
  • 在此先说一下windows批量修改文件名之后会存在哪些问题, 问题1:会在文件名的后面自带一个小括号 问题2:在括号的前面有一个空格 一,批量修改文件名 进入文件所在路径-------->全选(Ctrl + A)------...

    在此先说一下windows批量修改完文件名之后会存在哪些问题,

        问题1:会在文件名的后面自带一个小括号

        问题2:在括号的前面有一个空格

           

    一,批量修改文件名

          进入文件所在路径-------->全选(Ctrl + A)---------->按F2-------->写入文件名------->按回车结束(Enter)。。。。。

    如上操作截图省略。。。。。。。。。。。。。。

    修改前:

     

    修改后(很明显,文件名中含有括号跟一个空格)

    二, 去除修改之后文件名中的小括号

    使用到的脚本内容:

    @Echo Off&SetLocal ENABLEDELAYEDEXPANSION
    FOR %%a in (*) do (
    set "name=%%a"
    set "name=!name: (=!"
    set "name=!name:)=!"
    ren "%%a" "!name!"
    )
    exit

    脚本使用方法:在将要被修改文件的路径下新建一个文本文档,将该内容拷贝进去,保存为.bat格式的文件,双击运行即可

    脚本执行前

    脚本执行后:

     

     

     

     

     

     

    展开全文
  • 要求:将E:\test目录下的多个文件重命名为特定格式的文件名 原文出自 http://bbs.csdn.net/topics/100120794 自己总结一下 步骤1:使用命令行 输入如图所示的命令 目的是将E:\test目录下的所以文件的文件名...

    要求:将E:\test目录下的多个文件重命名为特定格式的文件名

    原文出自  http://bbs.csdn.net/topics/100120794

    自己总结一下

    步骤1:使用命令行  输入如图所示的命令

    image

    目的是将E:\test目录下的所以文件的文件名输出到test.txt文本文件中

    该文本文档默认在E:\test目录下  所以会看到把test.txt的文件名也输出来了

    image

    2、新建一个excel表格  输入如下  之所以要使用excel表格  是因为  它可以下拉自动填充

    image

    3、使用ultraedit的列模式  将excel的每一行拷贝进去

    image

    4、保存成.bat文件  将这个.bat文件拷贝到E:\test目录下执行即可

    这里保存的时候注意一下编码格式   保持和系统的TXT文档一个编码格式就可以了

    image

    5、打完收工

     

    6、这里需要特别注意的

    如果文件名有空格的情况

    可以使用引号将文件名括起来  就可以了

    像这样(这里可能需要多点击几次批处理文件才会把文件名全部改正过来  尤其是那些有空格的文件名)

    image

    转载于:https://www.cnblogs.com/audi-car/p/5128427.html

    展开全文
  • 1.批量去除文件名中的空格: 把以下代码保存成.bat批处理文件,放到需要批量重命名的文件内,运行即可。   @echo off&setlocal enabledelayedexpansion for /f "delims=" %%i in ('dir /s/b ...
  • 批量修改文件名

    2021-08-02 17:06:23
    使用Excel批量修改文件名 提取文件夹内的文件名。参考批量提取文件夹内文件名; 在Excel中打开文件名文件,第一列为旧文件名。第二列(B列)输入目标新文件名文件名后缀); 输入改名公式在第三列(C列)输入...
  • # -*- coding: utf-8 -*- """ Spyder 编辑器 这是一个临时脚本文件。 """ import os ...print("**********************************************") ...#walk方法会返回一个三元组,分别是root、dirs和files。...
  • 2、**初步修改文件名:**选中所有的文件,按F2 后再按 Enter。这里我输入一个20001,然后所有文件名修改成一系列,如图 3、**去空格:**建立delete.txt,另存为delete.bat,双击去除空格。内容如下: @echo off ...
  • 批量删除/修改文件名中的某些字符串

    千次阅读 多人点赞 2020-09-07 18:54:10
    set /p str1= 请输入要替换的文件(文件夹)名字符串(可替换空格): set /p str2= 请输入替换后的文件(文件夹)名字符串(若删除直接回车): echo. echo 正在操作中,请稍候…… for /f "delims=" %%a in ('dir /s /...
  • 文件中的空格问题: 如果文件中有空格,在执行shell脚本的时候可能会出错: ls 1 2.txt jus t a.txt 执行如下脚本: for file in `ls *.srt` do echo $file done 输出: 1 2.txt jus t a.txt.txt 所以要对空格...
  • 用bat文件批量修改文件名

    千次阅读 2019-07-25 09:45:31
    用bat文件批量修改文件名 代码如下: rem 启用"延缓环境变量扩充" setlocal EnableDelayedExpansion set a=1 rem 循环当前目录下所有图片的文件名,支持带空格的名称 for /f “delims=” %%i in (‘dir /b *.jpg’) ...
  • 日常工作我们经常会遇到很多文件需要...如何批量修改文件名文件名批量修改的简单方法 http://126163.net/1245.html 如果不怕麻烦,喜欢专业,接着往下看。 如果你需要制定一些规则来给文件批量重命名的话,那...
  • ​古僧精进者,师复是谁流。道贵行无我,禅难说到头。汲泉羸鹤立,拥褐老猿愁。曾住深山院,何如此院幽。...下面就给大家分享下,如何实现批量修改文件名。首先第一步,我们需要把需要修改的文件名全部提取出来,...
  • path = r'C:\Users\hp\Desktop\huizong\(1)所有二维码的图片\模型库\复制备份\8zhuangpei\钻床夹具' # 要修改的文件夹路径 pre_name = 'zuanchuang' # 修改后的文件名前缀 for filename in os.listdir(path): new...
  • 先获得原始文件名字(后缀),再导到excel里搞好新名字,构建好Bat的ren函数,完成修改。 具体措施: 1)读取原本文件名称 在相应的文件目录下,新建一个文本文件,并且打开输入 dir *.* /b>rename.txt。...
  • 问题 我在使用matlab对删格文件进行计算时,发现由于命名问题,matlab读取文件顺序并不是按照顺序运行,例如,我的文件命名是“1.tif’,‘2.tif’,……‘11.tif’,‘12,tif’。...批量修改文件名的操作有很多种
  • python批量修改文件名

    2014-03-12 21:50:04
    #批量重命名文件,重命名音乐、电视剧 import os def Rename(file_path,same_part='',diff_part=''): if not os.path.exists(file_path): os._exit(1) for (path,sir,files) in os.walk(file_path,topdown=False)...
  • 评论区旁友建议使用narsort排序而不是直接修改文件名。我觉得相关条件下也可以,所以原文末尾加上了narsot排序法。以下是原文2019-05-09最近实验室小可爱帮忙做实验和记录实验数据,不过新手总有些错误操作,比方说...
  • 一、批量修改和替换文件名特殊字符脚本 下载地址:https://download.csdn.net/download/Nobody_else_/12642369 自己动手: 将下面的代码,复制到txt文件内,将文件后缀.txt改为.bat。建议新建一个单独的文件夹,...
  • Linux 批量修改文件名

    万次阅读 2013-01-06 12:33:07
    1.rename命令批量修改文件名, 其实linux下可以使用别的办法来批量修改文件名, 不过rename实在太方便了 比如把所有的表为cdb1_* 修改为cdb_*的 在本目录下 只需要# rename 'cdb1' 'cdb' * 以前都是写个...
  • 批处理,实现将源文件后缀为.bin...@rem 批量修改后缀 @echo off setlocal enabledelayedexpansion set srcsuffix=bin set dstsuffix=raw echo 源后缀为.bin echo 目标后缀为.raw dir *.%srcsuffix...
  • bat批量修改文件名

    千次阅读 2009-12-07 18:28:55
    1.bat重命名文件 ren aaa.txt bbb.doc 解释:将 aaa.txt 命名为 bbb.doc   2.循环重命名一个文件夹下的所有结尾为xls的文件,前...3. 在原文件名前面加当前系统日期格式yyyyMMdd @echo offfor /f "toke...
  • Linux下批量修改文件名

    千次阅读 2016-03-30 10:18:47
    Larry Wall的rename脚本, 只用了个位行数的代码就构造出一个功能超强的批量文件重命名工具:  注释: 1. # touch rename.perl //创建一个文件:rename.perl , 内容如下。 ...
  • 批处理之ren命令-可批量修改文件名

    千次阅读 2021-01-28 15:58:04
    1.批处理批量修改文件后缀名(假设我需要把一个文件夹中的很多txt文件改为sql文件): 1)在需要被处理的文件的文件夹里先新建一个txt文本,然后在文本中写入: ren *.txt *.sql 2)保存文件后关闭,然后将这...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,294
精华内容 3,717
关键字:

批量修改带空格文件名