DOS下如何重命名有空格的文件名

例如我有一个文件名为新建文件夹 (2),**注意(2)前有空格,
那么如何在DOS下重命名这个文件夹呢?
以我所知REN这个命令是:ren 文件名1 文件名2
但是如果文件名1有空格岂不是默认了(2)就是文件名2的名字么?
有高手能帮助下么?
我的是在WINDOWS下文件名有空格,但是想从DOS下改名字

把他的要求分解成两部分
1、先用dir命令把所有要进行重命名的文件的全路径列出来发送到一个临时的文本文件。
(供下面的for语句来读取)
2、用for命令来读取那个由dir命令生成的列表文件
a、在循环的过程中取得上级文件夹名
b、取得文件名
c、ren "源文件名" "上级文件夹名文件名"
上面就是伪代码,接下来是批处理的实现代码
@echo offrem 生成临时列表文件
dir d:\*.txt /s /a-d /b>>tmp.txtrem 用for命令来读取那个由dir命令生成的列表文件
FOR /F "tokens=*" %%a IN (
'more tmp.txt'
) DO (
rem 用Setlocal来启用环境变量延迟功能
Setlocal EnableDelayedExpansionrem 取得路径包括了最后一个斜线\
set tempPath=%%~dparem 把路径中的最后一个斜线去掉
set tempPath=!tempPath:~,-1!rem 在for命令中来扩展取得路径名
FOR %%A IN (
"!tempPath!"
) DO (
rem 扩展取得上级目录名
set filePath=%%~nA

rem 新的文件名为: 上级目录名文件名
set new_name=!filePath!%%~nxa

rem 重命名文件名(为了安全,这里只是用echo把命名的
rem 语句显示出来)
rem 如果要进行重命名的话,把echo 去掉就可以了
echo ren "%%a" "!new_name!"
)
ENDLOCAL
)
rem 删除临时文件
del tmp.txt /q 1>nul 2>nul
pause
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-07-06
1、先用dir命令把所有要进行重命名的文件的全路径列出来发送到一个临时的文本文件。
(供下面的for语句来读取)
2、用for命令来读取那个由dir命令生成的列表文件
a、在循环的过程中取得上级文件夹名
b、取得文件名
c、ren "源文件名" "上级文件夹名文件名"
第2个回答  2008-11-12
把每个文件夹的名字用“文件 夹” 就可以了
第3个回答  2012-06-04
帮新建文件夹 (2)加个双引号就行了,如:ren "新建文件夹 (2)" 新建文件夹(2)。这样就搞定了。。。。。
第4个回答  2008-11-21
纯dos下是没有带空格的文件的。在windows下有空格的文件,在纯DOS下会显示为其他的
在CMD下可以用:ren "文 空格 件名1" "文件名2"
用双引号扩起来就可以了
相似回答