2011-12-29 43 views
0

我的問題:DOS命令移動在子目錄下的所有文件,而不會覆蓋相同的文件名一個級別,獨特的大小

我也有同樣的情況仙人。我有不同CD上出現的同一個藝術家的同一首歌的許多版本。如果我使用的批處理命令是寫入的,即使每個獨特文件的文件大小不同,DOS是否會覆蓋具有相同名稱的歌曲?

前面的問題:DOS命令將所有文件在子目錄一個級別

參考仙人問及1月15日的問題是:

「我有很多的子文件夾中有一個或多個文件夾我試圖編寫一個批處理文件,將所有這些文件移動到C:\ songs(例如)。

C:> FOR/RC:\ Test%i IN(*)DO MOVE%i C:\歌曲 文件夾測試和歌曲存在,但我得到一個錯誤,說

%我在這個時候出乎意料。 我在做什麼錯 「

答案是

」 FOR/R%I IN(C:\測試*)?DO MOVE 「%I」 C:\歌曲 在一個批處理文件,它有成爲%%我。 「

回答

0

在一個給定的文件夾中,只能有一個具有給定名稱的文件的版本,當在批處理中執行時,MOVE命令將自動覆蓋任何已存在的同名文件。所以回答你的問題是 - 是的,具有相同名稱的文件將被寫入過,即使它有一個不同的文件大小(請注意 - 如果您使用的是Windows XP,那麼你不使用DOS)。

可以防止覆蓋現有文件的批處理移動通過管道n,其中-y選項中移動:

echo n | move /-y "%%~i" "C:\songs\" 

如果要複製和保存兩個版本放入同一個文件夾,那麼至少有一個版本將不得不重新命名。在開始提供解決方案之前,您必須決定要使用何種命名方案。

相關問題