标题: [已完成]30元求解答:%~1传递参数时遇到文件路径错误 [打印本页]
作者: sykIII 时间: 2019-10-16 19:33 标题: [已完成]30元求解答:%~1传递参数时遇到文件路径错误
本帖最后由 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' 不是内部或外部命令,也不是可运行的程序
- 或批处理文件。
复制代码
求解答一下
以及如何修改才能让这套代码战无不胜
作者: zaqmlp 时间: 2019-10-16 19:52
本帖最后由 zaqmlp 于 2019-10-17 00:18 编辑
- @echo off
- set info=互助互利,支付宝扫码头像,感谢打赏
- rem 有问题,可加QQ956535081及时沟通
- title %info%
- setlocal enabledelayedexpansion
- >"%tmp%\t.t" echo;!cmdcmdline!
- endlocal
- >"%tmp%\j.j" echo;s=WSH.StdIn.ReadLine().replace(/^^.+?\.(bat^|cmd)"\s*/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\" (
- echo;"%%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)>"%%a\desktop.ini"
- attrib +s +h "%%a\%%b"
- attrib +s +h "%%a\desktop.ini"
- attrib +r "%%a"
- )
- if not defined f (
- echo;Not Found - *.ico
- )
- echo;--------------------------
- )
- )
- :end
- echo;%info%
- pause
- exit
复制代码
作者: sykIII 时间: 2019-10-16 21:29
本帖最后由 sykIII 于 2019-10-16 21:31 编辑
回复 2# zaqmlp
希望只显示错误的被处理文件夹的名称
以及希望能去掉引号
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |