2009-10-20 286 views
43

在Visual Studio 2005/8中執行搜索時,有沒有辦法排除特定類型的.cs文件?如何從Visual Studio文件搜索中排除designer.cs

例如:在重構場景中,我可能會搜索識別我的代碼中的字符串文字,以便我可以將它們重構爲常量或其他類型。然而,* designer.cs文件充滿了字符串文字,我不在乎處理,但它們出現在我的搜索中並污染了結果集。

我通常搜索*的.cs ...

我怎麼不理*了.Designer.cs?

+0

任何機會,你可以發佈您的解決方案作爲一個答案。接受的答案現在鏈接到404 – Blowsie 2013-01-03 16:02:03

+2

我們都可以在這裏爲Visual Studio中的功能投票:https://visualstudio.uservoice.com/forums/121579-visual-studio-2015/suggestions/2907413-add-exclude-文件到查找選項 - 在Doooooo下! – Polshgiant 2016-05-16 00:35:10

回答

12

我看到它很晚了,但看着這個頁面上的投票數量和活動,我發佈了我的答案;也許別人覺得它有用。這裏是你如何在VS2010及以上版本中做到這一點:

  1. 打開軟件包管理器控制檯(工具> NuGet軟件包管理器>軟件包管理器控制檯)。讓PowerShell自行初始化。
  2. 在PowerShell提示符下輸入以下命令:

    dir -Recurse | Select-String -pattern "Your Search Word Or Pattern" -exclude "*.designer.cs"

  3. 這將列出您指定的文字或圖案的所有事件,包括文件名,行號和文本行它在哪裏找到。

其他注意事項

  1. 如果要指定多個排除模式,與@("*.designer.cs", "*.designer.vb", "reference.cs")或任何你想跳過其他文件替換"*.designer.cs"
  2. 另一件好事就是搜索模式也支持正則表達式。
  3. 此解決方案的一個缺點是它不會讓您雙擊結果中的一行以在Visual Studio中打開該文件。您可以通過命令管道此限制:

    dir -Recurse | Select-String -pattern "Your String Or Pattern" -exclude "*.designer.vb" | sort | Select -ExpandProperty "Path" | get-unique | ForEach-Object { $DTE.ExecuteCommand("File.OpenFile", """$_""") }

這將打開所有的地方字符串或模式在Visual Studio中找到的文件。然後,您可以使用在單個文件中查找窗口來查找確切的實例。

此解決方案的另一個優點是,它也適用於Express版本,因爲Package Manager包含在2012和2013 Express版本中;不知道2010年。

+0

後一個命令會在Visual Studio 2015的VB解決方案中拋出一大堆窗口,說明「操作無法完成」。 – 2016-10-19 10:13:17

+0

找到了答案 - 用(「File.OpenFile」,「」「$ _」「」)替換(「File.OpenFile」,$ _)。這是將文件名用引號括起來,因爲路徑中包含空格。如果搜索整個解決方案,請考慮添加* .VB。我得到了很多無關的文件,直到我做到了。 – 2016-10-19 10:26:22

5

Microsoft連接票「Find option to exclude designer generated code」表示按文件擴展名過濾的搜索結果在VS 2010

+1

此答案現在無效,由VS2010 – 2011-06-20 00:51:36

+0

@ hamlin11可能按文件類型進行過濾您能否提供此參考? – 2011-10-21 08:22:22

+1

當然,我做了一個屏幕截圖。使用「在文件中查找」http://i.imgur.com/UzI3l.png – 2011-10-21 15:08:37

1

將不存在,我只是碰到這種問題就來了,我尋找的答案,這非常的問題。

很沮喪與VS和倒在我的UltraEdit的值得信賴的副本,並指定在其「在文件中查找」工具選項:

File names/extensions to ignore in search: 

    *.pdb;*.dll;*.exe;*designer.vb;*.xsd;*.xml;*.xss;*.resx; 
+0

@sammeric:感謝小費,歡迎來到SO。有沒有UltraEdit的免費版本?我喜歡Notepad ++,但它似乎沒有搜索忽略功能。 (順便說一句,在SO響應中不需要簽名,所有的帖子都會自動與你的名字和頭像簽署。) – 2011-04-06 16:26:36

+0

不幸的是,沒有免費版本的UltraEdit。我付了一份副本,因爲我已經使用了它多年(最初是爲了在VS添加該功能之前的列編輯模式)。它具有許多強大的功能,使其個人值得花費。我使用正則表達式搜索的腳本,並替換隻是爲了命名一個功能。 – samneric 2011-04-07 20:07:53

31
*a.cs;*b.cs;*c.cs;*d.cs;*e.cs;*f.cs;*g.cs;*h.cs;*i.cs;*j.cs;*k.cs;*l.cs;*m.cs;*n.cs;*o.cs;*p.cs;*q.cs;*s.cs;*t.cs;*u.cs;*v.cs;*w.cs;*x.cs;*y.cs;*z.cs;*_.cs;*..cs;*ar.cs;*br.cs;*cr.cs;*dr.cs;*fr.cs;*gr.cs;*hr.cs;*ir.cs;*jr.cs;*kr.cs;*lr.cs;*mr.cs;*nr.cs;*or.cs;*pr.cs;*qr.cs;*rr.cs;*sr.cs;*tr.cs;*ur.cs;*vr.cs;*wr.cs;*xr.cs;*yr.cs;*zr.cs;*_r.cs;*.r.cs;*aer.cs;*ber.cs;*cer.cs;*der.cs;*eer.cs;*fer.cs;*ger.cs;*her.cs;*ier.cs;*jer.cs;*ker.cs;*ler.cs;*mer.cs;*oer.cs;*per.cs;*qer.cs;*rer.cs;*ser.cs;*ter.cs;*uer.cs;*ver.cs;*wer.cs;*xer.cs;*yer.cs;*zer.cs;*_er.cs;*.er.cs;*aner.cs;*bner.cs;*cner.cs;*dner.cs;*ener.cs;*fner.cs;*hner.cs;*iner.cs;*jner.cs;*kner.cs;*lner.cs;*mner.cs;*nner.cs;*oner.cs;*pner.cs;*qner.cs;*rner.cs;*sner.cs;*tner.cs;*uner.cs;*vner.cs;*wner.cs;*xner.cs;*yner.cs;*zner.cs;*_ner.cs;*.ner.cs;*agner.cs;*bgner.cs;*cgner.cs;*dgner.cs;*egner.cs;*fgner.cs;*ggner.cs;*hgner.cs;*jgner.cs;*kgner.cs;*lgner.cs;*mgner.cs;*ngner.cs;*ogner.cs;*pgner.cs;*qgner.cs;*rgner.cs;*sgner.cs;*tgner.cs;*ugner.cs;*vgner.cs;*wgner.cs;*xgner.cs;*ygner.cs;*zgner.cs;*_gner.cs;*.gner.cs;*aigner.cs;*bigner.cs;*cigner.cs;*digner.cs;*eigner.cs;*figner.cs;*gigner.cs;*higner.cs;*iigner.cs;*jigner.cs;*kigner.cs;*ligner.cs;*migner.cs;*nigner.cs;*oigner.cs;*pigner.cs;*qigner.cs;*rigner.cs;*tigner.cs;*uigner.cs;*vigner.cs;*wigner.cs;*xigner.cs;*yigner.cs;*zigner.cs;*_igner.cs;*.igner.cs;*asigner.cs;*bsigner.cs;*csigner.cs;*dsigner.cs;*fsigner.cs;*gsigner.cs;*hsigner.cs;*isigner.cs;*jsigner.cs;*ksigner.cs;*lsigner.cs;*msigner.cs;*nsigner.cs;*osigner.cs;*psigner.cs;*qsigner.cs;*rsigner.cs;*ssigner.cs;*tsigner.cs;*usigner.cs;*vsigner.cs;*wsigner.cs;*xsigner.cs;*ysigner.cs;*zsigner.cs;*_signer.cs;*.signer.cs;*aesigner.cs;*besigner.cs;*cesigner.cs;*eesigner.cs;*fesigner.cs;*gesigner.cs;*hesigner.cs;*iesigner.cs;*jesigner.cs;*kesigner.cs;*lesigner.cs;*mesigner.cs;*nesigner.cs;*oesigner.cs;*pesigner.cs;*qesigner.cs;*resigner.cs;*sesigner.cs;*tesigner.cs;*uesigner.cs;*vesigner.cs;*wesigner.cs;*xesigner.cs;*yesigner.cs;*zesigner.cs;*_esigner.cs;*.esigner.cs;*adesigner.cs;*bdesigner.cs;*cdesigner.cs;*ddesigner.cs;*edesigner.cs;*fdesigner.cs;*gdesigner.cs;*hdesigner.cs;*idesigner.cs;*jdesigner.cs;*kdesigner.cs;*ldesigner.cs;*mdesigner.cs;*ndesigner.cs;*odesigner.cs;*pdesigner.cs;*qdesigner.cs;*rdesigner.cs;*sdesigner.cs;*tdesigner.cs;*udesigner.cs;*vdesigner.cs;*wdesigner.cs;*xdesigner.cs;*ydesigner.cs;*zdesigner.cs;*_designer.cs 

嗨,只需複製並粘貼以上「看看這些文件類型:」

-Steven衝

+3

儘管這可以在搜索結果中顯示「* .designer.cs」,但白名單與將條件列入黑名單不同。例如,如果我想忽略'* .designer.cs'和'Reference.cs',這個白名單失敗。 – 2012-06-07 16:10:16

+0

這是一種解決方法,Visual Studio將保存您的列表。我可以發佈另一個白名單,如果你想忽略* .designer.cs和reference.cs,這是我個人認爲有用並且想要分享的 – 2012-06-08 08:37:23

+7

這很醜,我喜歡它:-D – slawekwin 2013-03-08 10:25:24

9

對於Visual Studio 2010嘗試Ultra Find擴展。您可以明確排除擴展名。

Using Ultra Find to search files with cs extension but excluding designer.cs and generated.cs files.

注意,搜索速度取決於如果您正在搜索的文件系統或項目/解決方案。

+8

不幸的是,在Ultra Find中沒有Regex搜索,它降低了Ultraness的一些... – Helo 2012-12-07 11:12:18

+2

Ultra Find擴展被刪除是一種遺憾..任何人都知道其他什麼? – wasatchwizard 2013-05-28 18:44:41

+0

@wasatchwizard我也在尋找類似的東西。你有什麼好運(特別是VS2012)? – 2013-06-04 22:36:54

0

這真的吹了一個答案,但這裏是我嘗試「從項目排除」才發現,這些文件也被搜查後沒有。

所有我不想包括的文件,幸運的是,在一個名爲'Archived'的根目錄下的文件夾,所以...我剪切並將文件粘貼到我的桌面。

也許這就是爲什麼Ultra Find Extension消失了......開發人員可以將所有不需要的文件分組到Web根目錄的一個文件夾中,並在執行搜索LOL時將其刪除。

相關問題