2013-09-26 51 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以获得更多命令并更好地解释它们 –

相关问题