cmd for命令中空格

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 for命令中空格的主要内容,如果未能解决你的问题,请参考以下文章

如何让cmd命令指定间隔时间执行1个命令

在java里面如何运行多条cmd命令?我是用for来循环,一次运行一条,可是老是不执行。

使用 FOR /F 'MSYS' 命令的 Cmd.exe 批处理脚本颜色输出

CMD for用法

windows常用cmd指令

CMD中for的用法详解命令扩展