本帖最后由 sykIII 于 2019-11-7 23:20 编辑
| setlocal enabledelayedexpansion | | >"%tmp%\t.t" echo;!cmdcmdline! | | endlocal | | >"%tmp%\j.j" echo;s=WSH.StdIn.ReadLine().replace(/^^.+?\.(bat^|cmd)" /ig,''); | | >>"%tmp%\j.j" echo;WSH.echo(s.replace(/"/g,'').replace(/ (?=[a-z]:)/ig,'\r\n')); | | for /f "delims=" %%a in ('type "%tmp%\t.t"^|cscript -nologo -e:jscript "%tmp%\j.j"') do ( | | if exist "%%a\" ( | | del /f /q /ah "%%a\desktop.ini" 2>nul | | set "f=" | | for /f "delims=" %%b in ('dir /a-d/b "%%a\*.ico" 2^>nul') do ( | | set f=1 | | (echo;[.ShellClassInfo] | | echo;IconResource=%%b | | echo;[ViewState] | | echo;Mode= | | echo;Vid= | | echo;FolderType=Pictures)>"%%a\desktop.ini" | | attrib +s +h "%%a\%%b" | | attrib +s +h "%%a\desktop.ini" | | attrib +r "%%a" | | ) | | if not defined f ( | | for /f "delims=" %%c in ("%%a") do echo;找不到文件 - "%%~nxc" | | ) | | ) | | ) | | :end | | echo; | | pause | | exitCOPY |
目的是一次性给所有拖入文件夹挂上图标(图标在文件夹内)
之前修改后可以处理特殊符号(如&)。现在又遇到问题了:文件名含有"・"会被传递成"?"
求解决
错误信息:
文件夹名:・・・
del /f /q /ah "C:\Users\sword\Desktop\???\desktop.ini" 2>nul
set "f="
for /F "delims=" %b in ('dir /a-d/b "C:\Users\sword\Desktop\???\*.ico" 2>nul') do (
set f=1 |