我正在处理Windows批处理文件,我需要更改当前目录中的文件名。
我有这些文件:
file1.txt
file2.txt
file3.txt
我需要在每个文件名之前添加字符串“REG~”,如此
REG~file1.txt
REG~file2.txt
REG~file3.txt
谢谢。
答案 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 }"