相关疑难解决方法(0)

svn diff:标记为二进制类型的文件

我在我的svn diff一个文件上做了一个,svn将它检测为二进制类型.该文件是可读的纯文本,我希望能够得到这个文件的差异.我如何告诉SVN这不是二进制文件?

Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Run Code Online (Sandbox Code Playgroud)

svn file-type

77
推荐指数
2
解决办法
4万
查看次数

PowerShell - 批量更改文件编码为UTF-8

我正在尝试做一个简单的事情:将文件编码从任何东西更改为UTF-8而不使用BOM.我找到了几个执行此操作的脚本,唯一真正适合我的脚本就是这个:https://superuser.com/questions/397890/convert-text-files-recursively-to-utf-8-in-powershell#回答-397915.

它按预期工作,但我需要生成的文件没有BOM.所以我尝试稍微修改脚本,添加给出这个问题的解决方案:使用PowerShell以UTF-8编写一个没有BOM的文件

这是我的最终剧本:

foreach ($i in Get-ChildItem -Recurse) {
    if ($i.PSIsContainer) {
        continue
    }

    $dest = $i.Fullname.Replace($PWD, "some_folder")

    $Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding($False)

    if (!(Test-Path $(Split-Path $dest -Parent))) {
        New-Item $(Split-Path $dest -Parent) -type Directory
    }

    get-content $i | out-file -encoding $Utf8NoBomEncoding -filepath $dest
}
Run Code Online (Sandbox Code Playgroud)

问题是,对于System.Text.UTF8Encoding($False)线路,powershell返回一个错误,抱怨参数不正确:

无法验证"编码"参数的参数.参数"System.Text.UTF8Encoding"不属于ValidateSet属性指定的组"unicode,utf7,utf8,utf32,ascii".

我想知道我是否遗漏了一些东西,比如powershell版本或类似的东西.我以前从未编写过Powershell脚本,所以我完全迷失了.而且我需要更改这些文件编码,其中有数百个,我不想一个接一个地自己做.

实际上我正在使用Windows 7附带的2.0版本.

提前致谢!

编辑1

我尝试了以下代码,由@LarsTruijens和其他帖子建议:

$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding($False)
foreach ($i in Get-ChildItem -Recurse) {
    if ($i.PSIsContainer) {
        continue
    }

    $dest = $i.Fullname.Replace($PWD, "some_folder")

    if (!(Test-Path …
Run Code Online (Sandbox Code Playgroud)

powershell encoding batch-file utf-8

9
推荐指数
1
解决办法
3万
查看次数

标签 统计

batch-file ×1

encoding ×1

file-type ×1

powershell ×1

svn ×1

utf-8 ×1