2013-09-26 49 views
0

我有一個學校作業,我被困在這個問題上。我不知道還有什麼可以轉身的。如何從當前目錄複製文件,但不使用批處理腳本複製子目錄?

所以,這個問題就出自上一個問題,即將腳本「myfile.txt」複製到我的環境變量%BackUpPath%(設置爲C:\ backup)。我的腳本如下:

  • 拷貝/ Y的myfile.txt%backuppath%

我卡上問我,使用IF與結合而存在語句來使腳本的問題一個FOR循環來複制當前目錄中的所有文件,但不會將任何子目錄複製到%backuppath%。

我該怎麼寫這個腳本?

回答

1

這應該解決的問題,但它的學術,而不是現實生活中的代碼。

它使用遞歸開關for-in-do並檢查由for-in-do生成的filename.ext實際上是否存在於當前目錄中 - 然後複製這些文件。

@echo off 
set "backuppath=c:\folder" 
for /r %%a in (*) do (
    if exist "%cd%\%%~nxa" (
     echo copying "%%a" 
     copy "%%a" "%backuppath%" >nul 
    ) 
) 
+0

現在發生的一種更好的方法是檢查文件的drive:\路徑是否與當前目錄相同。如果在當前目錄以及其他地方存在相同的文件名,上面的代碼可以複製兩次或更多文件在目錄樹中。 – foxidrive

1

嘗試一下這些命令永遠訂購

@echo off tree "C:\backup" find /c "*.TXT" C:\Backup if exists "file path\name" move /y "files within the folder to other folder" del /f /s "main file-path" for each %.txt IN C:\Backup goto a <replace move with copy if needed> ;;this is a rough idea of what you might need.

+0

我希望我能做到這一點。我必須爲我的班級創建一個批處理腳本,它完全符合問題所述:-( – Sicypher

+0

你應該可以,但是你必須包含一個路徑,也可以查看計算機hope.com以獲得更多命令並更好地解釋它們 –

相關問題