使用批次删除文件的最后n个字符
问题描述:
我在一个文件夹中有大约500个文件。我试图使用批次“for /r %i in (*) do type 4KB file.txt >> %i
使用批次删除文件的最后n个字符
将所有文件(存储为文件)连接到所有文件 现在我希望它们恢复到原始状态,很少有文件大约是14GB,在尝试读取时,大量的时间来打开。
请让我知道我该怎么回复他们回到原来的状态。
答
首先,这个任务的难度取决于你附加到文件中的实际字符串。
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 $_
}
两个尝试可以被认为是有害的,因为这可能会影响到编码,文件结构等 - 我只是没有足够的时间来检查这一点。如果文件重要,最好备份它们。
你可以举一些关于这些文件内容的例子,你想删除什么?或者状态如何现在以及你想看到的结果。 – DarkLite1 2014-09-03 11:34:11
其中大多数是二进制文件。该4 KB文件是一个文本文件,我想将它们添加到为每添加4KB时测试上传速度。它可以是我们希望的任何事情。 – debiansse 2014-09-03 11:48:25
只需在连接4KB数据之前备份不同文件夹中的所有文件,并删除原始文件夹并在要恢复原始状态时重命名备份文件夹。 – Aacini 2014-09-03 15:06:25