cmd 运行批处理,路径中有括号不识别怎么办

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cmd 运行批处理,路径中有括号不识别怎么办相关的知识,希望对你有一定的参考价值。

cmd /k D:\dev\\lib(1)\init.bat
'D:\dev\lib' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
括号,不知别怎么解决?

cmd 运行批处理,路径中有括号时,使用CALL或者转义即可,如下所示

cmd /c "d:\\test(t)t.bat"
cmd /c call "d:\\test(t)t.bat"
cmd /c "d:\\test^(t^)t.bat"

效果如下:

参考技术A 方法一:用call 调用
cmd /k call "d:\dev\lib(1)\init.bat"

方法二:用转义符转义
cmd /k "r:\dev\lib^(1^)\init.bat"本回答被提问者和网友采纳
参考技术B 分开,不要一行写完你要做的事情
特殊符号都有代码的,就像汉字有代码一样追问

怎么分开,他是个路径,开始运行的时候 cmd /k D:\dev\\lib(1)\init.bat 一敲回车就报错了,请问你说的分开是什么意思,举个例子

追答

shell里的括号的用法
http://edu.cnzz.cn/NewsInfo/2176.aspx
如果不对,算我多嘴

参考技术C cmd /k D:\dev\lib(1)\init.bat

cmd for命令中空格

cmd for命令中空格。在UG安装中 替换本机名用下面批处理for /f "delims=" %%a in (D:\UG 5.0\Crack\nx5.lic 这句中出现UG 5.0中带有空格 这么加" "都说找不到路径。

@echo off & setlocal enabledelayedexpansion

::提取本机name信息
for /f "tokens=2 delims=:" %%a in ('ipconfig/all^|findstr /i /c:"Host Name"') do (set /a n=!n!+1&set name=%%a)
set name=!name: =!
echo 本机name为:%name%
set name2=BB11B5CE876C460
echo 替换name为:%name2%

::替换MAC
cd.>temp.txt
for /f "delims=" %%a in (D:\UG 5.0\Crack\nx5.lic) do (
echo.%%a|find /i "%name2%">nul
if not !errorlevel! equ 0 (echo>>temp.txt %%a) else (
set str=%%a
set str=!str:%name2%=%name%!
echo>>temp.txt !str!
)
)
move /y temp.txt D:\UG 5.0\Crack\nx5.lic
start "" notepad.exe D:\UG 5.0\Crack\nx5.lic

参考技术A @echo off & setlocal enabledelayedexpansion

set lic=D:\UG 5.0\Crack\nx5.lic

::提取本机name信息
for /f "tokens=2 delims=:" %%a in ('ipconfig/all^|findstr /i /c:"Host Name"') do (set /a n=!n!+1&set name=%%a)
set name=!name: =!
echo 本机name为:%name%
set name2=BB11B5CE876C460
echo 替换name为:%name2%

::替换MAC
cd.>temp.txt
for /f "delims=" %%a in ('type "%lic%"') do (
echo.%%a|find /i "%name2%">nul
if not !errorlevel! equ 0 (echo>>temp.txt %%a) else (
set str=%%a
set str=!str:%name2%=%name%!
echo>>temp.txt !str!
)
)
move /y temp.txt "%lic%"
start "" notepad.exe "%lic%"本回答被提问者采纳
参考技术B 这两种办法都行
1 加引号, 并在前多加一参数: for /f "usebackq delims="
2 这句前加一句 cd/d "D:\UG 5.0\Crack" 然后那括号里把路径去掉只要没空格的文件名
当然最后两句也都是要加引号的
参考技术C 改为这样即可:
for /f "delims=" %%a in ("D:\UG 5.0\Crack\nx5.lic") do (

::把它当成字符串用而不是当做路径——批处理的特性:即使是字符串do后也会当做路径用。追问

不行

参考技术D 用dir d:\ug 5.0 /x 命令,把缩写的那个带~的路径替换以上的路径,就可以了。追问

不行

以上是关于cmd 运行批处理,路径中有括号不识别怎么办的主要内容,如果未能解决你的问题,请参考以下文章

cmd系统命令不识别

docker不识别mnt

002. Linux基础二 (命令行/括号拓展TABhistory)

终极办法windows下安装完MySQL,为什么cmd不识别命令?

终极办法windows下安装完MySQL,为什么cmd不识别命令?

VS Code中无法识别npm命令