2011-08-13 141 views
1

似乎禁止創建找到未使用的CSS選擇器並實際刪除它們的應用程序,他們所做的只是找到它們並創建一個列表(Dust-Me選擇器附件)。我使用的程序(Skybound Stylizer)不再運行,因爲我轉移到了x64。PowerShell腳本刪除文件中的文本A文件B

我想採用由Dust-Me選擇器創建的CSV文件,並從CSS文件中刪除該文件中的每一行。

如果數據格式與CSS文件不一致,則可能需要格式化CSV文件,但爲了解決此問題,您可以將CSV文件中的每行都視爲文本字符串。

除塵我選擇器示例.csv文件:

Screenshot 1

Screenshot 2

File

+0

什麼用剛剛創建一個新的文件,只有在使用的規則工作向後它它?我有些驚訝,你不能這樣做,所以你的意思是灰塵我不支持編輯文件到位? –

+0

已經閱讀過很多次DMS(和其他人)這樣做,但沒有辦法做到這一點。有一個網站收費,作者確認DMS(和其他人)不會刪除未使用的選擇器。 – OIO

+0

不熟悉來自Dust-Me的CSV輸出,您能否修改問題以顯示數據樣本?如果我們可以假設文件A中的CSS全部在一行上,但如果我們必須解析內容,那麼它很容易,那麼它可能會變成一個更復雜的問題。 – billinkc

回答

1

如果你是想通過CSV文件和CSS文件的東西之間的線匹配行像這樣應該可以工作:(注意,我對這些關於類似文件所做的工作或多或少都是這樣做的,但我目前沒有腳本來檢查)


$a1 = (Get-Content .\File1.csv) 
$b1 = (Get-Content .\File2.css) 

Foreach ($line in $a1) 
{ 
    $b1 | where { $_ -ne $line } | Set-Content .\File3.css 
} 

Move-Item .\File3.css .\File2.css -Force 

如果不是線路匹配行然後更改where語句是這樣的:


where { $_ -notlike "*$line*"} 
+0

有文件A.csv(貓)和文件B.css(狗|貓|鳥)。運行腳本文件B.txt後的內容是:fish | cat | bird。它沒有將「cat」與「where {}」一起刪除。 – OIO

+0

有趣...我看到同樣的問題,不管我嘗試哪種方式。如果我切換A.csv的順序,「貓」會被取出,但「狗」仍然存在。 –

+0

是的,對這一個抱歉...我似乎錯過了這個邏輯,爲什麼它這樣做。另一種選擇可能是使用比較對象,但我不知道如何使用它來創建b.txt。比較對象$ b1 $ a1 |選擇InputObject,將只給出$ b1中不在$ a1中的項目。 –