昨天我将两个驱动器(D:空和 E:我的数据)与 WinPE 中的 EASEUS 分区主文件合并。但它失败了,然后我意识到我的 70% 的数据已移动到一个文件夹(D:\Local Disk E_72420221840),30% 仍保留在 E 中。然后将所有数据复制到新磁盘并删除分区并创建一个新的集群大小为 64KB 的分区,然后将我之前复制的数据恢复到新分区,然后注意到我所有的文件夹自定义图标都消失了。经过一番搜索,我发现了问题。默认情况下,只读属性设置为所有文件夹,并且必须显示在 desktop.ini 中指定的自定义图标。但我的文件夹都没有只读标志,所以我测试了下面的代码
attrib +R "foldername"
它起作用了(自定义图标再次出现)但我有 600GB 的数据和很多文件夹,那么有没有办法轻松地将所有文件夹属性重置为默认只读?下面也试过了
FOR /f %a IN ('DIR /A/D/B') DO ATTRIB +R "%a"
但它也改变了文件属性(我不希望我的整个文件都是只读的)并且不会改变子文件夹。 我想我需要一个 for 循环脚本来检查 %%a 是文件夹还是文件,并搜索所有子文件夹。几天前,我为一个可以检查 1% 是文件夹还是文件的任务创建了一个脚本,我使用了这个模板:
if exist %1\ (echo %%1 is Folder) else if exist %1 (echo %%1 is File) else (exit)
idk 是否适合我的情况,因为我还没有测试太多。
更新:正如@Señor CMasMas 所说我错了。只读是默认属性仅适用于具有自定义图标的文件夹。所以我不想弄乱所有文件夹,只是包含 desktop.ini 的文件夹。
这是我相信您正在寻找的答案。
尝试这个:
for /r %d in (.) do if exist "%d\desktop.ini" pushd "%d" && ATTRIB +R . && popd
如果您将其放入批处理文件中,则需要将“%”符号加倍。
如果没有and ,这本来可以工作,但是我将它们留在这里,因此如果其他人可能正在使用不采用路径的命令..他们可以替换它以使其工作。
pushd
popd