【发布时间】:2018-07-30 09:40:20
【问题描述】:
我正在尝试将我的 dotnet 核心项目(在 Windows 中)配置为“区分大小写”,因此它的行为就像在我的生产服务器 (linux) 中一样。
我有 found this way 这样做:
fsutil.exe file setCaseSensitiveInfo "C:\my folder" enable
问题是这个函数不是递归的:
区分大小写标志只影响您应用它的特定文件夹。该文件夹的子文件夹不会自动继承它。
所以我正在尝试构建一个 powershell 脚本,以递归方式将其应用于所有文件夹和子文件夹。
我尝试过用谷歌搜索类似的东西,只是修改了命令行,但我似乎没有找到正确的关键字。这是the closest that I've gotten 这类示例。
【问题讨论】:
-
(gci -Recurse -Directory).FullName | % {fsutil.exe file setCaseSensitiveInfo $_ enable}(没有 Windows 10 来测试它) -
@robdy 这是正确答案。谢谢。它回答“setCaseSensitiveInfo 是一个无效参数”,但这是 Window7 的错……我用
(gci -Recurse -Directory).FullName | % {echo $_}测试了你的脚本,它就像一个魅力。 -
遗憾的是,虽然上述方法曾经有效,但微软现在已经向 fsutil 添加了一个“功能”,它将不再允许您在非空目录上设置区分大小写。现在,当您尝试将上述内容应用于具有子目录的目录时,您将得到一堆这样的:错误:目录不是空的。
标签: powershell