yyz2191958 发表于 2023-9-15 23:48:18

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

本帖最后由 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
*********************************************
运行后提示:命令语法不正确。(实际上:除了含!号的文件名不能够去空格外,普通文件名还是能够去空格的)

这是为什么?

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

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








yyz2191958 发表于 2023-9-16 00:57:09

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

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

martin313 发表于 2023-9-16 06:44:35

路过
帮顶一下

tzxinqing 发表于 2023-9-16 10:32:55

能请教下去空格的意义吗?

yyz2191958 发表于 2023-9-16 11:41:54

tzxinqing 发表于 2023-9-16 10:32
能请教下去空格的意义吗?

有一些场景需要

wxinchun92 发表于 2023-9-16 12:15:58

不需要重命名,将文件名变量中空格替换成%20即可

nttwqz 发表于 2023-9-16 12:16:33

tzxinqing 发表于 2023-9-16 10:32
能请教下去空格的意义吗?

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

yyz2191958 发表于 2023-9-16 12:28:14

本帖最后由 yyz2191958 于 2023-9-16 12:38 编辑

wxinchun92 发表于 2023-9-16 12:15
不需要重命名,将文件名变量中空格替换成%20即可
我没有一点基础,能够直接给完整代码吗?

martin313 发表于 2023-9-16 12:30:27


恭喜解决了

wxinchun92 发表于 2023-9-16 12:39:22

本帖最后由 wxinchun92 于 2023-9-16 12:41 编辑

yyz2191958 发表于 2023-9-16 12:28
我没有一点基础,能够直接给完整代码吗?@echo off
setlocal enabledelayedexpansion
set /p a=请输入:
for /f "delims=" %%i in ("%a%") do (
        set aa=%%i
        set aa=!aa: =%%20!
        set a=!aa!
)
echo. %a%
pause

yyz2191958 发表于 2023-9-16 12:40:28

wxinchun92 发表于 2023-9-16 12:39


我试一试先 谢谢

yyz2191958 发表于 2023-9-16 12:46:04

wxinchun92 发表于 2023-9-16 12:39


输入什么?

wxinchun92 发表于 2023-9-16 12:52:46

yyz2191958 发表于 2023-9-16 12:46
输入什么?

带空格的变量啊

nathan6498 发表于 2023-9-16 16:06:36

学习学习

yyz2191958 发表于 2023-9-16 18:19:16

本帖最后由 yyz2191958 于 2023-9-16 18:22 编辑

wxinchun92 发表于 2023-9-16 12:52
带空格的变量啊
能不能不需要输入?放到文件夹运行,就直接去除本目录里面文件名的空格?

szwp 发表于 2023-9-16 18:38:25

输入是学习,并不是改名

yyz2191958 发表于 2023-9-16 18:42:33

szwp 发表于 2023-9-16 18:38
输入是学习,并不是改名

我不明白 惭愧

wxinchun92 发表于 2023-9-16 19:07:16

yyz2191958 发表于 2023-9-16 18:42
我不明白 惭愧

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

yyz2191958 发表于 2023-9-16 19:14:08

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

我也是学习

yyz2191958 发表于 2023-9-16 19:15:52

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

原来的哪个已经哪个使用

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

szwp 发表于 2023-9-17 08:06:02

for %%f in (*) do call :r %%f
pause
:r
set f=%*
ren "%f%" %f: =%

yyz2191958 发表于 2023-9-17 08:18:58

szwp 发表于 2023-9-17 08:06
for %%f in (*) do call :r %%f
pause
:r


我试一试先 谢谢

yyz2191958 发表于 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

成功了非常感谢

szwp 发表于 2023-9-17 08:39:45

yyz2191958 发表于 2023-9-17 08:26
普通文件名实用成功

文件名有!号的不行


将结果截屏

yyz2191958 发表于 2023-9-17 08:50:16

本帖最后由 yyz2191958 于 2023-9-17 08:51 编辑

szwp 发表于 2023-9-17 08:39
将结果截屏
经过再次测试,成功了非常感谢(原来不行,可能是我加了回显和exit)

szwp 发表于 2023-9-17 08:57:19

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

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

yyz2191958 发表于 2023-9-17 09:04:48

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

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

谢谢

szwp 发表于 2023-9-17 09:05:59

yyz2191958 发表于 2023-9-17 09:04
问题发现了:
1.如果按照你的代码,啥也不动————成功
2..如果在你的代码的最后加exit ———不成 ...

将结果截屏才能知道原因

szwp 发表于 2023-9-17 09:06:40

估计加错位置了,将pause改成exit

yyz2191958 发表于 2023-9-17 09:10:38

szwp 发表于 2023-9-17 09:06
估计加错位置了,将pause改成exit

我将 pause 删除了
页: [1] 2
查看完整版本: 【已解决】求助:去文件名空格.bat,命令语法不正确。