本帖最后由 77七 于 2024-4-12 16:20 编辑
回复 24# 77七
我找到原因了,去掉()则正确复制代码
这个if 和 () 真是纠缠不清啊,这都能出错...这个直接颠覆了我的认知,以前一直以为明着写才会出错
再次验证
- @echo off
- set str=D:\\1\新建文件夹 (2)
- if defined str (
- echo %str%
- )
- pause
复制代码
结果还是错的
幸好以前跟aloha20200628大佬学了一招,使用set /p=""<nul,保留特殊字符,双引号直接把()打出原形
- @echo off
- set str=D:\\1\新建文件夹 (2)
- if defined str (
- set /p="%str%"<nul
- echo=
- )
- pause
复制代码
结果正确
想到aloha20200628大佬提到 set /p=""<nul无法保留前置空格,看来也不是个完美办法
- @echo off
- set str= D:\\1\新建文件夹 (2)
- if defined str (
- for /f "delims=" %%x in ("%str%") do (
- echo %%x
- )
- )
- pause
复制代码
难道只能这样了?... |