Windows 批处理文件中具有特殊属性的目录
我有一个我不久前创建的批处理文件,它只是获取一个图像,将其转换为256*256图标文件(使用imagemagick),并将其设置为图像目录图标 非常简单的东西,但我确实有一个问题,无论我读到什么,我似乎都无法理解。如果一个目录有任何类型的特殊字符,它将无法工作,这是一个麻烦,因为它主要用于带有括号的目录 有人愿意解释我做错了什么吗?我以前从未在批处理文件中工作过,所以我意识到我远远不够好Windows 批处理文件中具有特殊属性的目录,windows,batch-file,Windows,Batch File,我有一个我不久前创建的批处理文件,它只是获取一个图像,将其转换为256*256图标文件(使用imagemagick),并将其设置为图像目录图标 非常简单的东西,但我确实有一个问题,无论我读到什么,我似乎都无法理解。如果一个目录有任何类型的特殊字符,它将无法工作,这是一个麻烦,因为它主要用于带有括号的目录 有人愿意解释我做错了什么吗?我以前从未在批处理文件中工作过,所以我意识到我远远不够好 @ECHO off %~d1 cd %~p1 set str=%~d1%~p1 If NOT exist
@ECHO off
%~d1
cd %~p1
set str=%~d1%~p1
If NOT exist "%str%Folder Options" (
md "%str%Folder Options"
)
If exist "%str%Folder Options\folder.ico" (
del %str%Folder Options\folder.ico
)
convert %1 -resize 256x256 "%str%Folder Options\folder_256.png"
convert "%str%Folder Options\folder_256.png" -gravity center -background none -extent 256x256 "%str%Folder Options\folder_256x256_alpha.png"
convert "%str%Folder Options\folder_256x256_alpha.png" "%str%Folder Options\folder.ico"
del "%str%Folder Options\folder_256.png"
del "%str%Folder Options\folder_256x256_alpha.png"
If exist "%str%desktop.ini" (
Attrib -S -H "%str%desktop.ini"
del "%str%desktop.ini"
)
ECHO Creating desktop.ini
(
ECHO [.ShellClassInfo]
ECHO IconFile=Folder Options\folder.ico
ECHO IconIndex=0
) >"%str%desktop.ini"
Attrib +H "%str%Folder Options"
Attrib +H +S "%str%desktop.ini"
Attrib +R "%str:~0,-1%"
什么样的特殊角色?脚本的哪一部分失败了?你有什么错误?您是否尝试过调试脚本以确定是什么命令导致失败?特殊字符不是空格、字母或数字。在调试时,在检查文件和目录是否存在时,它似乎一开始就失败了。如果没有这些行,脚本运行正常。请注意,
del
命令的参数没有括在引号中。可能是这样吗?摩尔语录<代码>设置“str=%~d1%~p1”不要在标题中添加“已解决”。将答案与解决方案一起添加,并接受该答案以将问题标记为已解决。什么类型的特殊字符?脚本的哪一部分失败了?你有什么错误?您是否尝试过调试脚本以确定是什么命令导致失败?特殊字符不是空格、字母或数字。在调试时,在检查文件和目录是否存在时,它似乎一开始就失败了。如果没有这些行,脚本运行正常。请注意,del
命令的参数没有括在引号中。可能是这样吗?摩尔语录<代码>设置“str=%~d1%~p1”不要在标题中添加“已解决”。将答案与答案一起添加,并接受该答案以将问题标记为已解决