我有一個問題將文件重命名爲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