Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 批处理文件中具有特殊属性的目录_Windows_Batch File - Fatal编程技术网

Windows 批处理文件中具有特殊属性的目录

Windows 批处理文件中具有特殊属性的目录,windows,batch-file,Windows,Batch File,我有一个我不久前创建的批处理文件,它只是获取一个图像,将其转换为256*256图标文件(使用imagemagick),并将其设置为图像目录图标 非常简单的东西,但我确实有一个问题,无论我读到什么,我似乎都无法理解。如果一个目录有任何类型的特殊字符,它将无法工作,这是一个麻烦,因为它主要用于带有括号的目录 有人愿意解释我做错了什么吗?我以前从未在批处理文件中工作过,所以我意识到我远远不够好 @ECHO off %~d1 cd %~p1 set str=%~d1%~p1 If NOT exist

我有一个我不久前创建的批处理文件,它只是获取一个图像,将其转换为256*256图标文件(使用imagemagick),并将其设置为图像目录图标

非常简单的东西,但我确实有一个问题,无论我读到什么,我似乎都无法理解。如果一个目录有任何类型的特殊字符,它将无法工作,这是一个麻烦,因为它主要用于带有括号的目录

有人愿意解释我做错了什么吗?我以前从未在批处理文件中工作过,所以我意识到我远远不够好

@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”不要在标题中添加“已解决”。将答案与答案一起添加,并接受该答案以将问题标记为已解决