批量删除文件夹中的字符

时间:2018-09-05 16:38:43

标签: batch-rename

好吧,让我给您具体信息

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

我正在组织一个文件夹,所以我有一批根据文件名创建文件夹,这实际上效果很好

我从哪里获得文件,但是用_代替空格,对于单独的文件本身,可以,没问题,但是我现在有150个文件夹并计数,而不仅仅是删除结尾文本必须将_单独替换为空格

在这里给我一个例子吧

(asdf678)_Ok_here_is_the_file / folder_name _-_ Someletters1231 __(234jh2nbs)

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

最后一点,当我意识到这是一个问题时,我已经将文件移到了所有文件夹中,是否可以不破坏内部文件的方式进行操作?我有一个老批处理文件的文件,因为它不管字符限制如何,都将它们压入它创建的文件夹中。

-编辑-

我应该在Windows 7上提及即时通讯

1 个答案:

答案 0 :(得分:0)

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