不完全确定 IF 语句是否正常工作。我希望它识别 Desktop.ini 是否存在,是否具有要重写的正确属性,然后重置属性。
这个 IF 语句是否符合我的要求?有时它有时会起作用,但不管我是否有 IF / IF 都不起作用。我想我需要先检查文件是否存在,但我不确定如何。
@ECHO OFF
attrib +s "%CD%"
set ICODIR=%CD%\Icon\
for %%F in ("%ICODIR%"*.ico) do set ICO=%%~nxF
echo %ICO%
echo %ICO:~0,-4%
set ICOINI=Desktop.ini
if exist %ICOINI% attrib -s -h %ICOINI%
echo [.ShellClassInfo] > %ICOINI%
echo IconResource=%ICODIR:~2%%ICO%>>%ICOINI%
echo InfoTip=%ICO:~0,-4%>>%ICOINI%
if not "%2"=="" (
echo FolderType=%2 >> %ICOINI%
)
attrib -a +s +h %ICOINI%
Pause
没有 if 语句的代码。
@ECHO OFF
attrib +s "%CD%"
set ICODIR=%CD%\Icon\
for %%F in ("%ICODIR%"*.ico) do set ICO=%%~nxF
echo %ICO%
echo %ICO:~0,-4%
set ICOINI=Desktop.ini
attrib -s -h %ICOINI%
echo [.ShellClassInfo] > %ICOINI%
echo IconResource=%ICODIR:~2%%ICO%>>%ICOINI%
echo InfoTip=%ICO:~0,-4%>>%ICOINI%
attrib -a +s +h %ICOINI%
Pause
编辑: 似乎它有时有效,有时与 Windows 无关,而不是批处理文件的原因。好像我删除文件夹中的一个文件它会工作,难怪我找不到错误>.<