【问题标题】:Batch remove character from folder从文件夹中批量删除字符
【发布时间】:2019-02-10 21:08:13
【问题描述】:

好的,我给你具体的

我需要从目录中的每个文件夹中删除一个字符并用空格替换它。

我正在整理文件夹,所以我有一批根据文件名制作文件夹,这实际上很好用

我从中获取文件的地方有 _ 代替空格,这对于单个文件本身来说,好的,这可行,没有真正的问题,但我现在有 150 个文件夹并计算它,而不是仅仅删除结尾文本我必须单独用空格替换_

这里让我们举一个我想要的例子

(asdf678)_Ok_here_is_the_file/folder_name_-_Someletters1231__(234jh2nbs)

(asdf678) 好的,这是文件/文件夹名称 - Someletters1231 (234jh2nbs)

最后一点,当我意识到这是一个问题时,我已经将文件移动到所有文件夹中,那么是否有可能以不破坏文件的方式执行此操作?我有一个旧批次的文件,因为它将它们推送到它创建的文件夹中,而不考虑字符限制。

-编辑-

我应该在 Windows 7 上提到我,

【问题讨论】:

    标签: batch-rename


    【解决方案1】:

    这对https://superuser.com/questions/295994/how-do-i-rename-files-with-spaces-using-the-linux-shell/295997有帮助吗?

    rename '_' ' ' [filenames...]
    

    或来自同一来源的另一种方法:

    for f in *\_*; do mv "$f" "${f//_/ }"; done
    

    在哪里

    • _ 选择所有带下划线的文件
    • ${f//str/new_str} 是特定于 bash 的字符串替换功能。 str 的所有实例都替换为 new_str (引自源)

    .bat 文件(来源:How to rename file by replacing substring using batch in Windows

    @echo off
    Setlocal enabledelayedexpansion
    
    Set "Pattern=rename"
    Set "Replace=reuse"
    
    For %%# in ("C:\Folder\*.jpg") Do (
        Set "File=%%~nx#"
        Ren "%%#" "!File:%Pattern%=%Replace%!"
    )
    
    Pause&Exit
    

    【讨论】:

    • 如果可能的话,我想把它放在一个 .bat 文件中,如果只是因为我能够将它放到文件夹中,启动文件,它会做它的事情,我可以保存它下次需要/可以使用。另外,我在 Windows 7 上,我很确定 linux 方式不会帮助我,但谢谢
    • 有道理。我使用 .bat 文件执行此操作,但现在无法访问该文件。我稍后会更新答案。目前,我认为stackoverflow.com/questions/16128869/… 应该有所帮助
    • 谢谢,虽然我必须指出我在这里主要是因为不存在做我想做的事情的程序,或者我花了接下来的 50-100 个小时自己制作文件夹,让问题坐下来,再做一次,或者自己想办法做。在文件名上创建文件夹很容易,并且将代码更改为不自动移动文件很容易,因为它几乎是简单的英语......但是,我想我知道如何让它在它所在的文件夹中工作,购买超越我不知道如何编辑它以使其将 _ 替换为空格,我非常感谢任何帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-17
    • 2013-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多