本帖最后由 cntanglang 于 2021-11-15 14:26 编辑
这段代码- if exist "%%b" ( ( MOVE /Y "%%b" "%%b.Ray" ) || (( ATTRIB -S -H -R "%%b" ) & ( MOVE /Y "%%b" "%%b.Ray" )) || ( ( RD /S /Q "%%b.Ray" ) & ( MOVE /Y "%%b" "%%b.Ray" )) )
复制代码 在执行中发现,无法按照预期执行: 如果目录b 存在,先重命名为 b.Ray;如果重命名出错,则 去掉目录b的SHR属性后再重命名;如果还是出错,则删除目录b.Ray后再重命名。
实际执行发现,如果目录b具有隐藏属性,则代码报错结果为:- 系统找不到指定的文件。
- 系统找不到指定的文件。
- 系统找不到指定的文件。
- 系统找不到指定的文件。
复制代码 请高手指点哪里写错了。多谢多谢
+++++++++++++++++++++++++++++++++++++++++++++++++
仔细测试了很久,发现出问题的可能不是上面的代码,而是系统命令
如下图所示:
虽然ATTRIB命令成功了
但文件夹的属性并没有变化,所以导致了后面命令的错误。
有大神知道为什么会出现这种BUG吗?
++++++++++++++++++++++++++++++++++++++++++++++++
再次更新:知道原因了,Attrib在处理链接文件时需要加 /L 参数 |