我们如何在批处理文件中使用当前目录路径(%~dp0)和 'ren' 命令?
How can we use the current directory path(%~dp0) with 'ren' command in a batch file?
我想重命名子目录中的文件,文件名的已知部分是“.log”。
当我尝试下面的操作时
ren subdirectory\*.log* file2.txt
或
ren .\subdirectory\*.log* file2.txt
我收到错误:The syntax of the command is incorrect.
我这里有两个问题:
我是否总是需要在 ren 命令中为文件 1 提供完整路径?
如果是,那么如果我不想硬编码,我们如何给出完整路径?
我知道我们可以使用 '%~dp0' 来获取当前目录路径,但我不确定如何将它与 'ren' 一起使用。
如果您还想使用相对路径 /
在 windows 中不正确,请改用 \
。
如果要搜索哪个相对路径是正确的,使用命令dir
示例:
dir .\
dir ..\..\
dir \
dir .
dir ..
更新
ren subdirectory\*.log* file2.txt
您的重命名掩码似乎危险!
不知道能不能把很多带掩码通配符的文件重命名成同一个名字。我认为它会将每个文件覆盖为一个文件,或者至少它会连接成单个文件但不确定。
如果您想查看重命名掩码的一些示例,请参见:How does the Windows RENAME command interpret wildcards?
更新
小批量查看您的面具的实际效果:
@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
添加引号有效:
ren "subdirectory\*.log*" file2.txt
或
ren ".\subdirectory\*.log*" file2.txt
谢谢wOxxOm!
删除具有相对路径的所有文件 *.log 的扩展名
rename ".\folder1\subfolder1\*.log" *.
我想重命名子目录中的文件,文件名的已知部分是“.log”。 当我尝试下面的操作时
ren subdirectory\*.log* file2.txt
或
ren .\subdirectory\*.log* file2.txt
我收到错误:The syntax of the command is incorrect.
我这里有两个问题:
我是否总是需要在 ren 命令中为文件 1 提供完整路径?
如果是,那么如果我不想硬编码,我们如何给出完整路径?
我知道我们可以使用 '%~dp0' 来获取当前目录路径,但我不确定如何将它与 'ren' 一起使用。
如果您还想使用相对路径 /
在 windows 中不正确,请改用 \
。
如果要搜索哪个相对路径是正确的,使用命令dir
示例:
dir .\
dir ..\..\
dir \
dir .
dir ..
更新
ren subdirectory\*.log* file2.txt
您的重命名掩码似乎危险!
不知道能不能把很多带掩码通配符的文件重命名成同一个名字。我认为它会将每个文件覆盖为一个文件,或者至少它会连接成单个文件但不确定。 如果您想查看重命名掩码的一些示例,请参见:How does the Windows RENAME command interpret wildcards?
更新
小批量查看您的面具的实际效果:
@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
添加引号有效:
ren "subdirectory\*.log*" file2.txt
或
ren ".\subdirectory\*.log*" file2.txt
谢谢wOxxOm!
删除具有相对路径的所有文件 *.log 的扩展名
rename ".\folder1\subfolder1\*.log" *.