找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 56373|回复: 15

[文件操作] [已解决]路径有空格时批处理提示:系统找不到指定的路径

[复制链接]
发表于 2022-1-25 09:48:52 | 显示全部楼层 |阅读模式
路径有空格时(没有空格就没有问题),提示:系统找不到指定的路径,谢谢
  1. @echo off&setlocal enabledelayedexpansion
  2. pushd %~dp0
  3. for /f "delims=" %%i in ('dir /s /b *.bat') do (
  4. set m=%%i
  5. set u=!m:.reg =!
  6. move "%%i" "!u: =!"
  7. )
  8. pause>nul
复制代码
发表于 2022-1-25 10:04:54 | 显示全部楼层

  1. @echo off&setlocal enabledelayedexpansion
  2. pushd %~dp0
  3. for /f "delims=" %%i in ('dir /s /b *.bat') do (
  4. set m=%%i
  5. set u=!m:.reg =!
  6. set v=!u: =!
  7. for /f "delims=" %%j in ("!v!") do (md "%%~dpj")
  8. move "%%~si" "!v!"
  9. )
  10. pause>nul
复制代码

评分

参与人数 1技术 +1 收起 理由
yyz219 + 1 运行以后,去空格,移动到桌面了(这不是我 ...

查看全部评分

 楼主| 发表于 2022-1-25 10:12:25 | 显示全部楼层
回复 2# 路过

运行以后,去空格,移动到桌面了(这不是我希望的)
   
谢谢
发表于 2022-1-25 10:40:46 | 显示全部楼层
那么,你希望的是什么呢?
 楼主| 发表于 2022-1-25 10:42:11 | 显示全部楼层
回复 4# qixiaobin0715

不去空格。不移动文件。
 楼主| 发表于 2022-1-25 10:45:03 | 显示全部楼层
回复 4# qixiaobin0715

仅仅删除文件名中的:.reg 就OK了。
发表于 2022-1-25 10:45:45 | 显示全部楼层
不要只是列出代码,说说你要实现的目的。
发表于 2022-1-25 10:51:03 | 显示全部楼层
本帖最后由 qixiaobin0715 于 2022-1-25 10:53 编辑

是重命名bat文件名?
dir /s /b *.bat
 楼主| 发表于 2022-1-25 10:51:37 | 显示全部楼层
本帖最后由 yyz219 于 2022-1-25 10:55 编辑

回复 7# qixiaobin0715
文件名:XXX.reg .bat
仅仅删除文件名中的:.reg 就OK了(.reg后面有一个空格。)
+++++++++++++++++++++++++++++++++
下面代码可以实现,但是我嫌代码太长
::【去.reg 字符(第1行右边,不能有""号)】
@echo off
set str1=.reg
for /f "delims=" %%a in ('dir /s /b ^|sort /+65535') do (
if "%%~nxa" neq "%~nx0" (
set "file=%%a"
set "name=%%~na"
set "extension=%%~xa"
call set "name=%%name:%str1%=%str2%%%"
setlocal enabledelayedexpansion
ren "!file!" "!name!!extension!" 2>nul
endlocal
)
)
exit
 楼主| 发表于 2022-1-25 10:57:54 | 显示全部楼层
回复 8# qixiaobin0715

这样不行
发表于 2022-1-25 11:04:49 | 显示全部楼层
本帖最后由 qixiaobin0715 于 2022-1-25 11:14 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /s /b /a-d *.bat') do (
  4.     set "FN=%%~nxi"
  5.     if not "%%i"=="%~0" ren "%%i" "!FN:.reg = !"
  6. )
  7. pause
复制代码

评分

参与人数 1技术 +2 收起 理由
yyz219 + 2 ok 非常感谢

查看全部评分

 楼主| 发表于 2022-1-25 11:09:07 | 显示全部楼层
回复 11# qixiaobin0715

还是去了文件名中的空格(我希望保存原样)

能够修改一下吗?(我希望保存原样)
发表于 2022-1-25 11:10:39 | 显示全部楼层
举个栗子:
原文件名——修改后的文件名
 楼主| 发表于 2022-1-25 11:15:06 | 显示全部楼层
本帖最后由 yyz219 于 2022-1-25 11:16 编辑

回复 13# qixiaobin0715

文件名:XXX.reg .bat  (XXX中间有可能有空格:XX X)(.reg ————是固定有的)

修改后:XXX.bat    XX X.bat
(一句话:就是仅仅删除文件名中的:.reg )
发表于 2022-1-25 11:15:31 | 显示全部楼层
回复 12# yyz219
代码已修改。看看是这样吗?

评分

参与人数 1技术 +1 收起 理由
yyz219 + 1 ok 非常感谢

查看全部评分

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

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 12:47 , Processed in 0.011842 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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