将所有以周期开头的RO文件更改为RW

时间:2011-11-04 00:20:18

标签: batch-file dos

我需要在目录结构中搜索以句点开头的所有文件(不要问...)并将它们从只读更改为rw。我可以使用第一个命令识别这些文件,但是如何将其转换为第二个命令?

dir .*.* /s /a-D /ar

现在我想获取该输出并运行attrib + r。这就是我所得到的,但它没有用。

for /f %f in ('dir .*.* /s /a-D /ar') DO "ATTRIB +R" "%G"

我认为我很接近,但DOS批处理命令从未像我期望的那样工作(我的问题,不是DOS的)

1 个答案:

答案 0 :(得分:2)

它不起作用的原因是因为attrib +r使处理过的令牌再次成为只读,并且因为你使用大写字母%G,你应该使用小写字母。

在Windows中,只读文件与Linux的不同之处在于您将文件标记为只读文件。 如果它不是只读的,它将使用ACL中为文件夹/文件找到的属性。 通常它会生成文件RW而不是只读。

您可以在此处详细了解:

http://msdn.microsoft.com/en-us/magazine/cc982153.aspx

所以对于你的问题:

for /f %f in ('dir .*.* /s /a-D /ar') DO "ATTRIB -R" "%g"

(因为我没有任何前缀的文件或文件夹。我无法测试并查看上述是否有效,您可能需要使用%f而不是%g,具体取决于您要使用的令牌。)

以上将执行attrib -r删除只读属性。

您可能希望将double %%用于要作为.bat,.cmd等执行的批处理脚本。

for /?帮助屏幕中所述:

  

“要在批处理程序中使用FOR命令,请改为指定%%变量   %变量。“

更多:

  

“变量名称区分大小写,因此%i与%I不同。”