簡體   English   中英

使用批處理刪除文件的最后n個字符

[英]remove last n characters of a file using batch

我的一個文件夾中有大約500個文件。 我正在嘗試使用批處理“ for /r %i in (*) do type 4KB file.txt >> %i將4KB數據(存儲為文件)連接到所有文件, for /r %i in (*) do type 4KB file.txt >> %i

現在我希望他們恢復原始狀態。 幾乎沒有文件在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 $_ 

}

兩次嘗試都被認為是有害的,因為這可能會影響編碼,文件結構等-我只是沒有足夠的時間進行檢查。 如果文件很重要,最好備份它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM