批量添加字符串之前的文件

时间:2014-02-10 10:16:08

标签: string batch-rename

我正在处理Windows批处理文件,我需要更改当前目录中的文件名。

我有这些文件:

file1.txt
file2.txt
file3.txt

我需要在每个文件名之前添加字符串“REG~”,如此

REG~file1.txt
REG~file2.txt
REG~file3.txt

谢谢。

5 个答案:

答案 0 :(得分:1)

@echo off    
SETLOCAL ENABLEDELAYEDEXPANSION    
SET old=file  
SET new=REG~file   
for /f "tokens=*" %%f in ('dir /b *.txt') do (    
    SET newname=%%f    
    SET newname=!newname:%old%=%new%!    
move "%%f" "!newname!"    
)

这样做是为了遍历批处理文件所在文件夹中的所有.txt文件,并在文件名中替换12月的文件。

答案 1 :(得分:1)

在包含.txt文件的文件夹中运行此命令。首先使用测试文件。

@echo off
for %%a in (*.txt) do ren "%%a" "REG~%%a.tmp"
ren *.tmp *.

答案 2 :(得分:0)

对于偶然发现此问题的任何人,只需对该代码进行一些调整-在末尾添加“ txt”(或适当的文件扩展名):

@echo off
for %%a in (*.txt) do ren "%%a" "REG~%%a.tmp"
ren *.tmp *.txt

答案 3 :(得分:0)

如果您使用的是 Windows,这对我有用。

如果你想为文件名添加任何前缀,可以按照下面的例子来完成。这里我们尝试为当前文件夹和子文件夹中的每个txt文件添加'photo'。

forfiles /S /M *.txt /C "cmd /c rename @file photo@file"

来源:How does python find a module file if the import statement only contains the filename?

答案 4 :(得分:0)

如果您想使用 Powershell,.bat 中的以下内容也可以(而且功能更强大。):

powershell.exe -command "get-childitem *.txt | rename-item -newname { 'REG~' + $_.Name }"