在.bat
Windows 的 cmd.exe 文件中,递归获取文件夹内容的所有权
takeown /f foldername /r /d Y >nul: 2>&1
问题是,它仅在当前语言环境中Yes的单词以字母 开头时才有效Y
。例如它在法语中失败,它使用Oui,因此需要O
.
任何解决方法?
在.bat
Windows 的 cmd.exe 文件中,递归获取文件夹内容的所有权
takeown /f foldername /r /d Y >nul: 2>&1
问题是,它仅在当前语言环境中Yes的单词以字母 开头时才有效Y
。例如它在法语中失败,它使用Oui,因此需要O
.
任何解决方法?
您可以使用该
COPY
命令来确定机器使用的“是”响应。该
%yes%
值将是整个单词,而不仅仅是第一个字母。我认为这会很好。但如果我错了,你可以简单地使用%yes:~0,1%
。更新 正如 fgrieu 在他的评论中指出的那样,如果脚本路径包含
(
. 由于其他特殊字符导致的失败可以通过放弃外部双引号并转义重定向来修复。但这(
是有问题的。这是一种替代策略,只要
%temp%
指向用户具有写入权限的有效文件夹即可。它会创建一个名称已知不会引起问题的文件。如果文件已经存在,%temp%
那么它是不受干扰的。我想不能保证 COPY 和 TAKEOWN 使用相同的 yes 响应,但如果他们不这样做,我会感到震惊。