无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 5001|回复: 35
打印 上一主题 下一主题

[已解决] 【已解决】求助:去文件名空格.bat,命令语法不正确。

[复制链接]
跳转到指定楼层
1#
发表于 2023-9-15 23:48:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyz2191958 于 2023-9-17 09:18 编辑

完美解决了:
::【文件名去空格(本目录全部)】版本1:
@echo off
cls
echo.
echo.
echo                         【文件名去空格(本目录全部)】?
pause>nul 2>nul
cls
set "str= "
for /f "delims=" %%i in ('dir /b *.*') do (
set "var=%%i" & Setlocal Enabledelayedexpansion & ren "!var!" "!var:%str%=!" & endlocal)
exit
版本2
@echo off

::【文件名去空格】【结尾不能有:exit 】
echo.
echo.
echo                         【文件名去空格(本目录全部)】?
pause>nul 2>nul
for %%f in (*) do call :r %%f

:r
set f=%* & ren "%f%" %f: =%
********************************************

原来的问题
::【去文件名空格】
@echo off
Setlocal Enabledelayedexpansion & set "str= "
for /f "delims=" %%i in ('dir /b *.*') do (set "var=%%i" & ren "%%i" "!var:%str%=!")
pause>nul 2>nul
*********************************************
运行后提示:命令语法不正确。(实际上:除了含!号的文件名不能够去空格外,普通文件名还是能够去空格的)

这是为什么?

+++++++++++++++++++++
原因已经查到了:是因为文件夹里面的文件名,有一个文件名字是!号开头的

就是不知道,应该怎样解决?谢谢








2#
 楼主| 发表于 2023-9-16 00:57:09 | 只看该作者
原因已经查到了:是因为文件夹里面的文件名,有一个文件名字是!号开头的

就是不知道,应该怎样解决?谢谢
回复

使用道具 举报

3#
发表于 2023-9-16 06:44:35 | 只看该作者
路过
帮顶一下
回复

使用道具 举报

4#
发表于 2023-9-16 10:32:55 | 只看该作者
能请教下去空格的意义吗?

点评

有的软件是不支持含空格及中文的路径的,特别是哪些开发已经找不到的软件。  详情 回复 发表于 2023-9-16 12:16
有一些场景需要  详情 回复 发表于 2023-9-16 11:41
回复

使用道具 举报

5#
 楼主| 发表于 2023-9-16 11:41:54 | 只看该作者
tzxinqing 发表于 2023-9-16 10:32
能请教下去空格的意义吗?

有一些场景需要
回复

使用道具 举报

6#
发表于 2023-9-16 12:15:58 | 只看该作者
不需要重命名,将文件名变量中空格替换成%20即可

点评

我没有一点基础,能够直接给全部代码吗?  详情 回复 发表于 2023-9-16 12:28
回复

使用道具 举报

7#
发表于 2023-9-16 12:16:33 来自手机 | 只看该作者
tzxinqing 发表于 2023-9-16 10:32
能请教下去空格的意义吗?

有的软件是不支持含空格及中文的路径的,特别是哪些开发已经找不到的软件。
回复

使用道具 举报

8#
 楼主| 发表于 2023-9-16 12:28:14 | 只看该作者
本帖最后由 yyz2191958 于 2023-9-16 12:38 编辑
wxinchun92 发表于 2023-9-16 12:15
不需要重命名,将文件名变量中空格替换成%20即可

我没有一点基础,能够直接给完整代码吗?
回复

使用道具 举报

9#
发表于 2023-9-16 12:30:27 | 只看该作者

恭喜解决了
回复

使用道具 举报

10#
发表于 2023-9-16 12:39:22 | 只看该作者
本帖最后由 wxinchun92 于 2023-9-16 12:41 编辑
yyz2191958 发表于 2023-9-16 12:28
我没有一点基础,能够直接给完整代码吗?
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p a=请输入:
  4. for /f "delims=" %%i in ("%a%") do (
  5.         set aa=%%i
  6.         set aa=!aa: =%%20!
  7.         set a=!aa!
  8. )
  9. echo. %a%
  10. pause
复制代码

点评

输入什么?  详情 回复 发表于 2023-9-16 12:46
我试一试先 谢谢  详情 回复 发表于 2023-9-16 12:40

评分

参与人数 1无忧币 +5 收起 理由
yyz2191958 + 5 很给力!

查看全部评分

回复

使用道具 举报

11#
 楼主| 发表于 2023-9-16 12:40:28 | 只看该作者

我试一试先 谢谢
回复

使用道具 举报

12#
 楼主| 发表于 2023-9-16 12:46:04 | 只看该作者

点评

带空格的变量啊  详情 回复 发表于 2023-9-16 12:52
回复

使用道具 举报

13#
发表于 2023-9-16 12:52:46 | 只看该作者

带空格的变量啊

点评

能不能不需要输入?放到文件夹运行就OK  详情 回复 发表于 2023-9-16 18:19
回复

使用道具 举报

14#
发表于 2023-9-16 16:06:36 | 只看该作者
学习学习
回复

使用道具 举报

15#
 楼主| 发表于 2023-9-16 18:19:16 | 只看该作者
本帖最后由 yyz2191958 于 2023-9-16 18:22 编辑

能不能不需要输入?放到文件夹运行,就直接去除本目录里面文件名的空格?
回复

使用道具 举报

16#
发表于 2023-9-16 18:38:25 来自手机 | 只看该作者
输入是学习,并不是改名

点评

我不明白 惭愧  详情 回复 发表于 2023-9-16 18:42
回复

使用道具 举报

17#
 楼主| 发表于 2023-9-16 18:42:33 | 只看该作者
szwp 发表于 2023-9-16 18:38
输入是学习,并不是改名

我不明白 惭愧

点评

你应该不需要了,我也是刚学习。网址URL的空格是%20,其他的不是  详情 回复 发表于 2023-9-16 19:07
回复

使用道具 举报

18#
发表于 2023-9-16 19:07:16 | 只看该作者

你应该不需要了,我也是刚学习。网址URL的空格是%20,其他的不是

点评

原来的哪个已经哪个使用 我是想看看,有没有更加简单的代码  详情 回复 发表于 2023-9-16 19:15
我也是学习  详情 回复 发表于 2023-9-16 19:14
回复

使用道具 举报

19#
 楼主| 发表于 2023-9-16 19:14:08 | 只看该作者
wxinchun92 发表于 2023-9-16 19:07
你应该不需要了,我也是刚学习。网址URL的空格是%20,其他的不是

我也是学习
回复

使用道具 举报

20#
 楼主| 发表于 2023-9-16 19:15:52 | 只看该作者
wxinchun92 发表于 2023-9-16 19:07
你应该不需要了,我也是刚学习。网址URL的空格是%20,其他的不是

原来的哪个已经哪个使用

我是想看看,有没有更加简单的代码
回复

使用道具 举报

21#
发表于 2023-9-17 08:06:02 | 只看该作者
for %%f in (*) do call :r %%f
pause
:r
set f=%*
ren "%f%" %f: =%

点评

普通文件名实用成功 文件名有!号的不行 能够修改一下吗?谢谢  详情 回复 发表于 2023-9-17 08:26
我试一试先 谢谢  详情 回复 发表于 2023-9-17 08:18

评分

参与人数 1无忧币 +5 收起 理由
yyz2191958 + 5 赞一个!

查看全部评分

回复

使用道具 举报

22#
 楼主| 发表于 2023-9-17 08:18:58 | 只看该作者
szwp 发表于 2023-9-17 08:06
for %%f in (*) do call :r %%f
pause
:r

我试一试先 谢谢
回复

使用道具 举报

23#
 楼主| 发表于 2023-9-17 08:26:28 | 只看该作者
本帖最后由 yyz2191958 于 2023-9-17 08:49 编辑
szwp 发表于 2023-9-17 08:06
for %%f in (*) do call :r %%f
pause
:r

成功了  非常感谢

点评

将结果截屏  详情 回复 发表于 2023-9-17 08:39
回复

使用道具 举报

24#
发表于 2023-9-17 08:39:45 | 只看该作者
yyz2191958 发表于 2023-9-17 08:26
普通文件名实用成功

文件名有!号的不行

将结果截屏

点评

经过再次测试,成功了 非常感谢  详情 回复 发表于 2023-9-17 08:50
回复

使用道具 举报

25#
 楼主| 发表于 2023-9-17 08:50:16 | 只看该作者
本帖最后由 yyz2191958 于 2023-9-17 08:51 编辑

经过再次测试,成功了  非常感谢(原来不行,可能是我加了回显和exit)

点评

啥都没动,怎么会原来的就不行了呢。  详情 回复 发表于 2023-9-17 08:57
回复

使用道具 举报

26#
发表于 2023-9-17 08:57:19 | 只看该作者
yyz2191958 发表于 2023-9-17 08:50
经过再次测试,成功了  非常感谢(原来不行,可能是我加了回显和exit)

啥都没动,怎么会原来的就不行了呢。

点评

问题发现了: 1.如果按照你的代码,啥也不动————成功 2..如果在你的代码的最后加 exit ———不成功 ************************************* 为什么不能够在最后加 exit? 谢谢  详情 回复 发表于 2023-9-17 09:04
回复

使用道具 举报

27#
 楼主| 发表于 2023-9-17 09:04:48 | 只看该作者
szwp 发表于 2023-9-17 08:57
啥都没动,怎么会原来的就不行了呢。

问题发现了:
1.如果按照你的代码,啥也不动————成功
2..如果在你的代码的最后加  exit ———不成功
*************************************
为什么不能够在最后加  exit?

谢谢

点评

将结果截屏才能知道原因  详情 回复 发表于 2023-9-17 09:05
回复

使用道具 举报

28#
发表于 2023-9-17 09:05:59 | 只看该作者
yyz2191958 发表于 2023-9-17 09:04
问题发现了:
1.如果按照你的代码,啥也不动————成功
2..如果在你的代码的最后加  exit ———不成 ...

将结果截屏才能知道原因
回复

使用道具 举报

29#
发表于 2023-9-17 09:06:40 | 只看该作者
估计加错位置了,将pause改成exit

点评

我将 pause 删除了  详情 回复 发表于 2023-9-17 09:10
回复

使用道具 举报

30#
 楼主| 发表于 2023-9-17 09:10:38 | 只看该作者
szwp 发表于 2023-9-17 09:06
估计加错位置了,将pause改成exit

我将 pause 删除了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-23 07:47

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表