2014-09-03 86 views
0

我在一個文件夾中有大約500個文件。我試圖使用批次「for /r %i in (*) do type 4KB file.txt >> %i使用批次刪除文件的最後n個字符

將所有文件(存儲爲文件)連接到所有文件 現在我希望它們恢復到原始狀態,很少有文件大約是14GB,在嘗試讀取時,大量的時間來打開。

請讓我知道我該怎麼回覆他們回到原來的狀態。

+1

你可以舉一些關於這些文件內容的例子,你想刪除什麼?或者狀態如何現在以及你想看到的結果。 – DarkLite1 2014-09-03 11:34:11

+0

其中大多數是二進制文件。該4 KB文件是一個文本文件,我想將它們添加到爲每添加4KB時測試上傳速度。它可以是我們希望的任何事情。 – debiansse 2014-09-03 11:48:25

+1

只需在連接4KB數據之前備份不同文件夾中的所有文件,並刪除原始文件夾並在要恢復原始狀態時重命名備份文件夾。 – Aacini 2014-09-03 15:06:25

回答

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 $_ 

} 

兩個嘗試可以被認爲是有害的,因爲這可能會影響到編碼,文件結構等 - 我只是沒有足夠的時間來檢查這一點。如果文件重要,最好備份它們。

相關問題