我们如何在批处理文件中将当前目录路径 (%~dp0) 与'ren'命令一起使用?



我想重命名子目录中存在的文件,文件名的已知部分是'.log'。当我尝试在

下面

ren subdirectory*.log* file2.txt

ren .subdirectory*.log* file2.txt

I get error: The syntax of the command is incorrect. 我有两个问题:

  1. 我是否总是需要在ren命令中为file1提供完整的路径?

  2. 如果是,那么我怎么能给完整的路径,如果我不想硬编码?

我知道我们可以使用'%~dp0'来获得当前目录路径,但我不确定如何使用'ren'。

可以添加引号:

ren  "subdirectory*.log*"  file2.txt

ren  ".subdirectory*.log*"  file2.txt

谢谢!

如果您想使用相对路径,/在windows中也不正确,请使用

如果您想搜索哪个相对路径是正确的,使用命令dir

的例子:

dir .
dir ....
dir 
dir .
dir ..

ren subdirectory*.log* file2.txt

您的重命名蒙版似乎危险!

我不知道你是否可以用掩码通配符重命名许多文件到相同的名称。我认为它会覆盖每个文件到一个,或者至少它会连接到一个文件,但不确定。如果您想查看重命名掩码的一些示例,请参阅:Windows RENAME命令如何解释通配符?

小批量查看您的面具的作用:

@echo off
md Somefolder
echo some content into _file1.log>_file1.log
echo some content into _file2.log>_file2.log
echo some content into _file3.log>_file3.log
echo some content into _file999.log>_file999.log
dir Somefolder
pause>NUL
REM Correct
ren Somefolder_file???.log _file???.txt
dir Somefolder
pause>NUL
REM Incorrect because it override _file???.txt into one _file1.log
ren Somefolder_file???.txt _file1.log
dir Somefolder
pause

删除所有相对路径

*.log文件的扩展名
rename ".folder1subfolder1*.log" *.

最新更新