Batch file 将文件夹内的ico属性批处理为新图标
我有一个文件夹,里面有一个.ico文件,我想将它设置为主文件夹的图标 这是我的问题,如果我手动执行此操作并输入此代码Batch file 将文件夹内的ico属性批处理为新图标,batch-file,directory,ico,Batch File,Directory,Ico,我有一个文件夹,里面有一个.ico文件,我想将它设置为主文件夹的图标 这是我的问题,如果我手动执行此操作并输入此代码 [.ShellClassInfo] ConfirmFileOp=0 NoSharing=1 IconFile=folder.ico IconIndex=0 InfoTip=Some sensible information. 在desktop.ini文件中,它工作得很好 但是,如果一个用户使用以下代码创建一个bat文件,它就不会这样做 ECHO [.ShellClass
[.ShellClassInfo]
ConfirmFileOp=0
NoSharing=1
IconFile=folder.ico
IconIndex=0
InfoTip=Some sensible information.
在desktop.ini文件中,它工作得很好
但是,如果一个用户使用以下代码创建一个bat文件,它就不会这样做
ECHO [.ShellClassInfo] >desktop.ini
ECHO ConfirmFileOp=0 >>desktop.ini
ECHO NoSharing=1 >>desktop.ini
ECHO IconFile=folder.ico >>desktop.ini
ECHO IconIndex=0 >>desktop.ini
ECHO InfoTip=Some sensible information. >>desktop.ini
输出完全相同。我还将+r分配给文件夹,因为没有它,它无法以任何方式工作
那么这里出了什么问题?这是由于命令中有几个未转义的特殊字符造成的。如果您先运行批处理,然后打开
desktop.ini
查看其内容,您会发现这与您的期望相差甚远
问题:
出现在
的左侧,这意味着要向文件中添加额外的空格
要解决此问题,只需删除此空间。类似于ECHO ConfirmFileOp=0>>desktop.ini
ECHO ConfirmFileOp=0>>desktop.ini
表示将ConfirmFileOp=
写入命令窗口,并将stdout传输到desktop.ini
<代码>0是管道标记
要解决此问题,请通过^0
、^1
等方式对数字进行转义。参考-
更简单的方法是在行首写入输出重定向指令-
>>desktop.ini echo ConfirmFileOp=0
desktop.ini
应隐藏在系统中,而不是存档。参考-
通过将以下行添加到批处理脚本中,您可以使用desktop.ini
:
attrib desktop.ini -a +h +s
谢谢你对伊冯的回复,但这并没有解决问题。我知道desktop.ini是一个隐藏文件。奇怪的是,如果我将相同的代码输入到一个txt文件中,然后使用另一个bat文件转换该文件,并使用以下ren*.txt*.ini,它就会工作,图标就会出现。但是,如果我在前一个代码的末尾添加了相同的代码,它就不起作用了,这很尴尬。@JoãoLagoas您在这个过程之后注销并再次登录了吗?@JoãoLagoas我也碰巧,当我第一次在新文件夹中创建这样的文件时,什么都没有发生;当我第一次在“属性”(另一个新文件夹的属性)中更改图标时,以下任何操作(启用图标、禁用图标、更改图标等)都有效。我不知道为什么会发生这种情况,但Windows似乎对自动生成的desktop.ini免疫,以防出现恶意软件或病毒。用户输入,如write.txt文件,首先会创建带有explorer.exe的文件;这可能就是不同之处。