重命名隐藏和系统文件的命令

11

我正试图找到一种方法将"Desktop.ini"重命名为"*.ini",并再次恢复为"Desktop.ini"。问题在于我需要保留文件的属性(因此不能删除隐藏和系统属性再重命名)。我想到的唯一解决方案是使用xcopy和del,但我无法正确使用选项、源选项和目标选项中的语法。

这是我想到的:

@ECHO OFF

xcopy /H /R Desktop.ini Desktop.txt /K
del /Q /AHS Desktop.ini
xcopy /H /R Desktop.txt Desktop.ini /K
del /Q /AHS Desktop.txt

Pause

exit /b

如果你揭示实际任务,那么解决方案可能会更明显。 - foxidrive
这个问题有解决方案了吗?我之前也遇到过这种情况。 - Gideon
2个回答

12

使用 ren 命令重命名文件时,必须先去掉 hiddensystem 属性,然后重新命名文件,最后再设置属性:

attrib -s -h desktop.ini
ren desktop.ini desktop.txt
attrib +s +h desktop.txt

如果你做不到那个,你必须使用其他东西,例如VBScript:

Set fso = CreateObject("Scripting.FileSystemObject")
fso.GetFile(WScript.Arguments(0)).Name = WScript.Arguments(1)

或者PowerShell:

Rename-Item 'desktop.ini' 'desktop.txt' -Force

1
正如我最初所述,我需要保留属性,我不能在不重新命名文件的情况下删除并读取它们。"问题在于我需要在保留隐藏和系统属性的情况下执行此操作(因此我不能删除它们然后重命名)"。 - Built on Sin
注意:对于谷歌员工,**-s** 表示 系统 文件,而 -h 表示普通隐藏文件。https://zh.wikipedia.org/wiki/文件属性#DOS和Windows - Marc.2377

-3

要删除所有的Desktop.ini文件,您可以使用以下命令:

DEL /S Desktop.ini

如果我只想删除文件,那就没问题了。但我需要将Desktop.ini(带有隐藏和系统属性)重命名为*.*,然后再改回原来的名称(带有相同的属性)。 - Built on Sin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接