批处理文件:当同一文件夹中存在另一个 .xlsx 文件时如何重命名 .xls 文件?
Batch file : how to rename a .xls file when another .xlsx file present in same folder?
我有一个包含 1 个批处理文件和 2 个 excel 文件的文件夹 - old.xls 和 new.xlsx。
我需要使用同一文件夹中的批处理文件将这两个文件重命名为 test.xls 和 test.xlsx。
当我尝试重命名 .xlsx 文件时,我可以使用以下命令成功完成:
ren *.xlsx test.xlsx
但是当我尝试对 .xls 文件执行相同操作时,出现以下错误:
ren *.xls test.xls
A duplicate file name exists, or the file
cannot be found.
有人能告诉我怎么做吗?我是批处理文件的新手。
@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
PUSHD "%sourcedir%"
ECHO directory before xlsx rename
DIR /x /a-d
REN *.xlsx test.xlsx
ECHO ============================
ECHO directory before XLS rename
DIR /x /a-d
ECHO.
FOR %%a IN (*.xls) DO ECHO "XLS" name found: %%a
ECHO.
FOR %%a IN (*.xls) DO IF /i "%%~xa"==".xls" REN "%%a" test.xls
ECHO ============================
ECHO directory after XLS rename
DIR /x /a-d
popd
GOTO :EOF
默认情况下,名称不符合 DOS“8.3”文件名约定(名称最多 8 个字符,扩展名最多 3 个,以点分隔)的每个文件或目录都将分配一个 "short name" 确实符合。
以上代码(我使用u:\sourcedir
作为测试目录)将显示步骤。请注意 dir /x
显示短名称和长名称。 /a-d
抑制目录名)。
so - 魔术是检查全名扩展实际上 是 .xls
.
我有一个包含 1 个批处理文件和 2 个 excel 文件的文件夹 - old.xls 和 new.xlsx。
我需要使用同一文件夹中的批处理文件将这两个文件重命名为 test.xls 和 test.xlsx。
当我尝试重命名 .xlsx 文件时,我可以使用以下命令成功完成:
ren *.xlsx test.xlsx
但是当我尝试对 .xls 文件执行相同操作时,出现以下错误:
ren *.xls test.xls
A duplicate file name exists, or the file
cannot be found.
有人能告诉我怎么做吗?我是批处理文件的新手。
@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
PUSHD "%sourcedir%"
ECHO directory before xlsx rename
DIR /x /a-d
REN *.xlsx test.xlsx
ECHO ============================
ECHO directory before XLS rename
DIR /x /a-d
ECHO.
FOR %%a IN (*.xls) DO ECHO "XLS" name found: %%a
ECHO.
FOR %%a IN (*.xls) DO IF /i "%%~xa"==".xls" REN "%%a" test.xls
ECHO ============================
ECHO directory after XLS rename
DIR /x /a-d
popd
GOTO :EOF
默认情况下,名称不符合 DOS“8.3”文件名约定(名称最多 8 个字符,扩展名最多 3 个,以点分隔)的每个文件或目录都将分配一个 "short name" 确实符合。
以上代码(我使用u:\sourcedir
作为测试目录)将显示步骤。请注意 dir /x
显示短名称和长名称。 /a-d
抑制目录名)。
so - 魔术是检查全名扩展实际上 是 .xls
.