本帖最后由 sykIII 于 2019-10-16 22:01 编辑
- @echo off
-
- :loop
- if "%~1"=="" goto :done
- if not exist "%~1\*.ico" goto :err
-
- del "%~1\desktop.ini" /f /q /ah 1>nul 2>nul
- set "dir=%~1"
- pushd "%dir%"
- for /f "delims=" %%a in ('dir /a-d/b *.ico') do set "icon=%%~nxa"
- (echo [.ShellClassInfo]
- echo IconResource=%icon%
- )>"%dir%\desktop.ini"
-
- attrib +s +h "%dir%\desktop.ini"
- attrib +s +h "%icon%"
- attrib +r /d "%dir%"
- popd
- goto :next
-
- :err
- set /p ="err﹥" <nul
- set /p ="%~nx1" <nul
- echo,
-
- :next
- shift
- goto :loop
-
- :done
- pause>nul
复制代码 我在使用过程中遇到一些情况让我很感兴趣
有的文件夹名称有特殊符号:比如"1&2"
这种在%~1里传递时会丢失"&"之后的路径,然后导致失败
但是我平时这种情况很少见,后来发现只要前面有空格:" 1&2"或"12 1&2"
就能显示出&号以及后面的路径了
因为比较感兴趣我测试了一下直接echo文件夹" 1&2"的路径
效果是这样- 测试>echo C:\Users\sword\Desktop\测试\ 1 & 2
- 测试\ 1
- '2' 不是内部或外部命令,也不是可运行的程序
- 或批处理文件。
复制代码 求解答一下
以及如何修改才能让这套代码战无不胜 |