中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-10 22:03
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » [已结]如何将文件名中含有空格的替换?
可打印版本  1,106 / 7
第1楼 dddyjq1 发表于 2008-12-15 23:44
初级用户 发帖 108 积分 175
[已结]如何将文件名中含有空格的替换?
如何将同一目录下所有文件名中含有空格的文件名将空格替换成○这个符号?
比文件夹下有这些文件
驱动器 C 中的卷没有标签。
卷的序列号是 0C5D-07FF

c:\txt 的目录



[ Last edited by HAT on 2008-12-16 at 19:33 ]
第2楼 15935643331 发表于 2008-12-16 04:11
初级用户 发帖 37 积分 42
我也想知道 弄了一会没弄出来
for /f "tokens=*" %%a in ('dir /b c:\txt^|findstr /e /c:" "') do (
echo.%%a: =○%%
ren %%a ???????????????
)

[ Last edited by 15935643331 on 2008-12-16 at 04:41 ]
第3楼 15935643331 发表于 2008-12-16 05:37
初级用户 发帖 37 积分 42
@echo on&setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('dir /b c:\txt') do set on=%%a&echo.%%a >>list.txt
for /f "tokens=1,* delims= " %%i in (list.txt) do (
set nn=%%i○%%j
ren c:\txt\%on% %%i○%%j
)
pause

不行啊,搞了一晚上,晕

[ Last edited by 15935643331 on 2008-12-16 at 06:56 ]
第4楼 pooronce 发表于 2008-12-16 10:41
中级用户 发帖 250 积分 484
set "name=%%a"
这样括住就能将空格传递到变量了
然后再替换就不难了

btw: 不用到list的,直接一个循环加变量延迟就行了,多了io操作浪费时间
第5楼 moniuming 发表于 2008-12-16 11:52
银牌会员 发帖 574 积分 1,335 来自 广西

如果显示符合要求就可以进行重命名操作了.
第6楼 linge 发表于 2008-12-16 15:51
新手上路 发帖 10 积分 11
@echo off & setlocal EnableDelayedExpansion
cd c:\txt 的目录
for %%I in (*.txt) do (
set aa=%%I
set aa=!aa: =O!
ren "%%I" !aa!
)
pause

[ Last edited by linge on 2008-12-16 at 15:58 ]
第7楼 dddyjq1 发表于 2008-12-16 19:11
初级用户 发帖 108 积分 175
谢谢各位
第8楼 15935643331 发表于 2008-12-17 01:55
初级用户 发帖 37 积分 42
@echo off
for /r c:\txt %%a in ("*.txt") do (
set "str=%%~na"
setlocal enabledelayedexpansion
set "str=!str: =○!"
echo.!str!%%~xa
ren "%%a" !str!%%~xa
endlocal
)
echo.&pause
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023