題 如何比較Windows 7中的文件夾


是否有開箱即用的方法來比較Windows 7中的兩個文件夾?比較應顯示子目錄文件夾和子目錄文件的差異。


4
2017-11-25 20:41


起源


powershell腳本? - strange walker
@strangewalker開箱即用嗎? - happybuddha
是的。雖然為沒有經驗的人編寫腳本可能很困難,但它的功能幾乎是無限的 - strange walker
如果您願意嘗試使用PowerShell,請參閱類似問題的主題 stackoverflow.com/questions/6526441/... - strange walker
@strangewalker你可以鞭打一個嗎?或者你知道每個人都可以使用它們嗎?你也應該把它變成一個答案。這有幫助,我會贊成 - happybuddha


答案:


我不是PowerShell專業人士,但是這會讓你在一個文件夾中存在哪些文件和文件夾,而在另一個文件夾中卻不存在。

$test1 = get-childitem -path C:\Users\IrisDaniela\Documents\test1 -recurse
$test2 = get-childitem -path C:\Users\IrisDaniela\Documents\test2 -recurse
compare-object $test2 $test1 | Where {$_.SideIndicator -eq '=>'}

這給出了:

InputObject                                                 SideIndicator
-----------                                                 -------------
test1a                                                      =>
test.txt                                                    =>

您也可以省略過濾,並獲得:

$test1 = get-childitem -path C:\Users\IrisDaniela\Documents\test1 -recurse
$test2 = get-childitem -path C:\Users\IrisDaniela\Documents\test2 -recurse
compare-object $test2 $test1

InputObject                                                 SideIndicator
-----------                                                 -------------
test1a                                                      =>
test.txt                                                    =>
test2b                                                      <=

Dunno,如果這是你正在尋找的,但也許它給你一個開始:)

The folders in the example The commands and result

要比較內容使用: compare-object (get-content a.text)(get-content b.txt) 等等


13
2017-11-25 22:02





有一個很好的unix工具,名為diff,你可以從cygwin安裝。

在勝利時,有一個名為beyondCompare的gui工具。


2
2017-11-25 21:18



謝謝您的回复。 Windows 7中有什麼OOTB可用嗎?我無法在這台計算機上安裝任何東西。 - happybuddha
Cygwin工具也可以在沒有安裝的情況下運行,雖然它需要一點工作。如果你有運氣,那麼也會出現同樣的情況。最簡單的解決方案是在家中安裝它,並在pendrive上複製它們的文件夾。一定要不要對當地的網絡規則做些什麼,如果因為我的建議你失業了,我不能長時間好好睡覺 - peterh
@happybuddha下載WinDiff,WinMerge或類似的差異。將其複製到通過網絡可用於此計算機的共享。從那裡執行它。 \\ myserver \ myshare \ windiff.exe localfolder1 localfolder2 - Mark Allen
這是對BeyondCompare的另一次投票。 - Daniel R Hicks


您可以創建一個批處理文件,創建包含目錄結構的兩個臨時文本文件,然後將這些臨時文件與之比較 fc

喜歡的東西(並根據喜好調整):

dir %1 /s /b /a /ong > temp1.txt
dir %2 /s /b /a /ong > temp2.txt
fc temp1.txt temp2.txt

dir命令的參數是: /s 遞歸到子文件夾 /b 不顯示細節,你可能想省略這個 /ong 按升序名稱排序,首先按目錄排序

另外,請記住調整參數中的可能空格

編輯:如評論中所述,我們必須從文件列表文本文件中刪除目錄前綴。這可以使用批處理文件來完成,例如:

@echo off
setlocal EnableDelayedExpansion

for /F "delims==" %%a in (%1) do @(
    set CURR_LINE=%%a
    @echo !CURR_LINE:~%2!
)

endlocal

用作 unprefix text_file.txt prefix_length。所以舉個例子 unprefix temp1.txt 5 將輸出temp1.txt的內容,而不是每行的前5個字符。


1
2017-11-26 10:23



dir /s /b 始終顯示絕對路徑,因此每行將具有不同的路徑前綴,這將導致 fc 報告每一行。在比較之前,您將需要一個工具來去除路徑前綴。 - Adrian Pronk
啊,是的,你是對的。 - frozenkoi


我用 FreeCommander (諾頓指揮官克隆)這樣做。它提供“同步文件夾”功能,允許比較兩個文件夾並可選擇同步它們。比較選項包括“按CRC”,“按日期”,“按內容”,“子文件夾”和“鬃毛”。這是非常強大的,並幫助我很多時間完美地做你所問的同樣的事情。

一般來說,FreeCommander是非常強大的工具。我經常使用的另一個功能是搜索文件和文件夾。


1
2017-12-07 02:42