使用批处理删除文件的最后n个字符

时间:2014-09-03 11:06:12

标签: windows powershell batch-file file-io batch-processing

我在一个文件夹中有大约500个文件。我试图将4KB数据(存储为文件)连接到所有文件 使用批处理" for /r %i in (*) do type 4KB file.txt >> %i

现在我希望他们恢复原状。很少有文件大约14GB。在尝试阅读时,需要花费大量时间才能阅读。

请让我知道如何将它们恢复到原始状态。

1 个答案:

答案 0 :(得分:0)

首先,此任务的难度取决于您附加到文件的实际字符串。

Get-ChildItem [your path here] | ForEach-Object {
$TempVar = Get-Content $_ | Select-string -Exclude "Something that uniquely matches the string you want to remove"
$TempVar | Set-Content $_ }

或者:

Get-ChildItem [your path here] | ForEach-Object {
$Length = ($_.ToCharArray) - 4096 #As you have 4KB, exactly?
$Newfile = ($_.ToCharArray() | Select -first $Length) -join ""
$NewFile | Set-content $_ 

}

这两种尝试都可能被视为有害,因为这可能会影响编码,文件结构等 - 我只是没有足够的时间来检查它。如果文件具有任何重要性,请更好地备份它们。

相关问题