本帖最后由 jiavip 于 2025-8-2 18:00 编辑
额,请求先请各位大神原谅:我用这样的标题来求问!
我编写了一个工具脚本(是给小白用的),,代码如下,(大神一眼就看得出,就免笑了),(初版),,,,,
- @Echo off
- set 检测=%~a1
- Echo %检测%|Find /i "S">Nul && Set FileSX=系统,
- Echo %检测%|Find /i "R">Nul && Set FileSX=%FileSX%只读,
- Echo %检测%|Find /i "P">Nul && Set FileSX=%FileSX%固定,
- Echo %检测%|Find /i "V">Nul && Set FileSX=%FileSX%完整,
- Echo %检测%|Find /i "A">Nul && Set FileSX=%FileSX%存档,
- Echo %检测%|Find /i "H">Nul && Set FileSX=%FileSX%隐藏,
- Echo %检测%|Find /i "O">Nul && Set FileSX=%FileSX%脱机,
- Echo %检测%|Find /i "X">Nul && Set FileSX=%FileSX%无清理,
- Echo %检测%|Find /i "U">Nul && Set FileSX=%FileSX%非固定,
- Echo %检测%|Find /i "I">Nul && Set FileSX=%FileSX%无内容索引,
- Echo. 文件大小:【%~Z1 Byte】
- Echo. 文件属性:【%检测%】
- Echo. 文件属性:【%FileSX%】
- Pause>Nul
复制代码 脚本,采用的是获取参数定义值,拖拽、调用 来获取,,
而我反复测试了几次,发现直接点击脚本,会得出,,,,
------------------
文件大小:【 Byte】
文件属性:【】
文件属性:【隐藏,脱机,】
-------------------------------
我反复测试,后来把脚本改写成。,,,,,,(改写版),,,,,,,,,,,,
- @Echo off
- set 检测=%~a1
- Echo.%检测%|Find /i "S">Nul && Set FileSX=系统,
- Echo.%检测%|Find /i "R">Nul && Set FileSX=%FileSX%只读,
- Echo.%检测%|Find /i "P">Nul && Set FileSX=%FileSX%固定,
- Echo.%检测%|Find /i "V">Nul && Set FileSX=%FileSX%完整,
- Echo.%检测%|Find /i "A">Nul && Set FileSX=%FileSX%存档,
- Echo.%检测%|Find /i "H">Nul && Set FileSX=%FileSX%隐藏,
- Echo.%检测%|Find /i "O">Nul && Set FileSX=%FileSX%脱机,
- Echo.%检测%|Find /i "X">Nul && Set FileSX=%FileSX%无清理,
- Echo.%检测%|Find /i "U">Nul && Set FileSX=%FileSX%非固定,
- Echo.%检测%|Find /i "I">Nul && Set FileSX=%FileSX%无内容索引,
- Echo. 文件大小:【%~Z1 Byte】
- Echo. 文件属性:【%检测%】
- Echo. 文件属性:【%FileSX%】
- Pause>Nul
复制代码 得出结果,,,,,,,,,,,,,,,,,,
-------------------------------
文件大小:【 Byte】
文件属性:【】
文件属性:【】
---------------------------------------
然后回到本帖标题!,,,为什么会有这样的错误显示,,,
提交一下测试条件:WIN10,
路径:md c:\1\2\3 & Pushd c:\1\2\3 & 脚本.bat
直接点击(初版)就会有这样的错误,,
而,点击(改版),,,
就不会有那样的错误,,,
哪怕是测试路径改成,,,,,,,,,,,,
md d:\1\2\3 & Pushd d:\1\2\3 & 脚本.bat
md x?n?:\1\2\3 & Pushd x?n?:\1\2\3 & 脚本.bat
结果依旧,,,,
,,,
,,
鄙人纠结的不是脚本编写的难度,而是对这类错误提出疑问,,,
这样的写法区别,为什么?,,它获取和判断就出现了极大的偏差,,,,
到底是符号获取的判断出现,特俗符号的重合,,,,,还是?命令标写符号有误?,,,或是?管道传输有特定帅选机制?,,,
有点复杂,但又,,很迷惑,,,,,
,,
我知道脚本还可以改写成另外一种写法,,,,,
就是应用 FOR 来 列举,,,但是我现在纠结的不是写法,,,
我纠结的是为什么它会有这样的错误!
纯好奇,,,希望有份量的回复和讨论,,,
希望,大神测试过后(说白了,历经我的疑惑,再来讨论,鄙人真心不懂!),望:回复、讨论!,,,)(,,,,,,,,,,
,,,
---------------------------------编辑后话-------------
原本我也想到什么了,有点朦胧的意识,就是没点到那层,就懒得去想了,,
经过2楼一点,就破了,,,,
脚本是写给00后的员工,完善他的脚本的,,年轻人有冲劲,创意想法多,
可能是年纪大了,又有点酗酒,不喜欢太动脑了。,,哎,,!
希望,年轻人别犯我这样的更年期病症。。。,,, |