【发布时间】:2023-04-08 07:32:01
【问题描述】:
如何将批处理文件复制到子目录,运行它,然后删除批处理文件?
我正在处理一个批处理文件,它会自动更改它所在文件夹的文件夹图标。如下所示:
@ECHO OFF
attrib +s "%CD%"
set ICODIR=%CD%\Icon\
for %%F in ("%ICODIR%"*.ico) do set ICO=%%~nxF
set ICOINI=Desktop.ini
IF EXIST 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
这是可行的,在发现许多问题后,它不会创建文件夹图标,直到该目录中的文件被删除。
我一直在尝试使用 for 循环来列出所有子目录并存储它们的名称。虽然它首先列出了根目录。我怎样才能让它跳过根目录?代码如下:
@ECHO OFF
for /R /D "delims=\" %%d IN (%CD%) do echo %%~nd
Pause
编辑:为什么文件只在最后一个文件夹中制作?
for /D /R "%cd%" %%d IN (*) do (
set something=%%~nd
echo TEST>%something%\Desktop.txt
)
【问题讨论】:
-
您的第一个脚本适用于我 (Win7)。什么必须删除才能生效?
-
@Jubjub Bandersnatch 当我运行它时,除了实际更改文件夹图标(也是 Win7)之外,它完全按照它应该做的事情,只有在文件夹中删除文件时才会出现图标.
-
这听起来更像是资源管理器的问题,而不是你的脚本。
标签: windows for-loop batch-file cmd command