gpt4 book ai didi

windows - 在批处理文件中使用目录名更改文件名

转载 作者:可可西里 更新时间:2023-11-01 11:48:48 27 4
gpt4 key购买 nike

我试图根据目录名递归更改一些文件名,但我失败了。这是我到目前为止所做的:

for /r %1 %%Z in (*.c) do (
echo ====
rem Change to the directory of .c file
echo cd /d "%%~dpZ"
cd /d "%%~dpZ"
rem Change the file's name with its directory name with .c extension
ren %%~nxZ %cd%.c
)

目录结构如下:

SubDir
renamer.bat
sub1
file1.c
sub2
file2.c
so on
so forth

所有其他帖子都说使用 %cd% 会返回当前目录的名称,但它会返回类似这样的内容:c:\users\myusername\desktop\SubDir , 表示它返回批处理文件的目录名称。但是,如您所见,我在批处理文件中使用了 cd 命令,所以我希望它返回 only sub1, sub2 等...因此,我可以将文件名更改为其目录名:

ren file1.c sub1.c

提前致谢。

编辑:回答

setlocal EnableDelayedExpansion
for /r %1 %%Z in (*.c) do (
echo ====
rem Change to the directory of .c file
echo cd /d "%%~dpZ"
cd /d "%%~dpZ"
rem Change the file's name with its directory name with .c extension
FOR /f "delims=" %%a IN ("%%~dpZ\.") DO (ren %%~nxZ %%~nxa.c)
)

最佳答案

 FOR /f "delims=" %%a IN ("%%~dpZ\.") DO ECHO(ren %%~nxZ %%~nxa-%%~nxZ

echo 新名称....

关于windows - 在批处理文件中使用目录名更改文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36141387/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com