我有一个问题将文件重命名为dir的结果。 实施例:批处理:根据dir命令重命名文件
我候选在C驱动器和候选文件夹内有一个文件夹名有以下文件:
- something.txt
- everything.doc
- onething.bmp
当我dir,我会得到文件的列表。
在该文件夹将始终为1个txt文件和1个bmp文件
如何重命名BMP文件,因此将作为TXT文件,假设我用DIR * .TXT
同名在上述我如何改变的例子onething.bmp到something.bmp
预先感谢任何答案
我有一个问题将文件重命名为dir的结果。 实施例:批处理:根据dir命令重命名文件
我候选在C驱动器和候选文件夹内有一个文件夹名有以下文件:
当我dir,我会得到文件的列表。
在该文件夹将始终为1个txt文件和1个bmp文件
如何重命名BMP文件,因此将作为TXT文件,假设我用DIR * .TXT
同名在上述我如何改变的例子onething.bmp到something.bmp
预先感谢任何答案
for %%X in ("*.txt") do (
for %%Y in ("*.bmp") do (
echo ren %%Y %%~nX%%~xY
)
)
如果输出是您需要的,请删除echo
。
为了%%~nX
等解释见for /?
这应该工作:
@ECHO OFF
FOR %%X in ("*.txt") DO (SET txtName=%%X)
FOR %%X in ("*.bmp") DO (SET bmpName=%%X)
FOR /F "tokens=1 delims=." %%X IN ("%txtName%") DO (
REN %bmpName% %%X.bmp
)
如果BAT文件位于同一文件夹中的TXT和BMP文件这只会工作。如果它位于其他地方,则必须调整路径。 如果文件夹中有多个bmp/txt文件,则只处理“最后”文件。
感谢@Michaels 抱歉地通知,该文件是不是该批次的位置为同一因此你的编码不给,我想但真的很欣赏的结果帮助 – useniezan
谢谢@Stephan ... 我仍然无法把它弄清楚。这是我做的 copyFiles copy * .txt c:\ MY \%username%\%3 \ copy * .doc c:\ MY \%username%\%3 \ copy * .bmp c: \ MY \%的用户名%\%3 \ 转到renameBMP :renameBMP 坎德拉/ DC:\ MY \%的用户名%\%3(的 “* .txt”)做( 为%% 为%% X为Y( “* .BMP”)做( 仁%%Ÿ%%〜NX %%〜XY ) ) 暂停 转到退出 结果不重命名为BMP一样的txt文件名。 只有1个txt文件和1个bmp文件 – useniezan
'copy .txt'不会复制,而是给出错误(使用'copy * .txt')同样在'for %% X in(“.txt”)中......通配符丢失了。 – Stephan