我需要一个脚本,最好是Windows批处理或C#,如下所示:
显示首先要求输入源文件夹的提示, 那么它应该要求目标文件夹。最后,它应该从源头询问应该将多少文件复制到目的地。
//我们谈论aprox 100.000文件,它们可以按随机顺序移动。
程序运行完毕后,程序应中断10分钟,然后通过之前的提示答案循环通知之前的程序。
我尝试过一点,但还没有找到解决方案。据我所知,XCOPY无法解决所有这些问题。
提前致谢, 标记
答案 0 :(得分:1)
您可以使用以下内容:
string source = Console.ReadLine();
string destination = Console.ReadLine();
int numberOfFilesToCopy = int.Parse(Console.ReadLine());
DirectoryInfo di = new DirectoryInfo(source);
var files = di.GetFiles();
for(i=0;i < math.Max(files.Length, numberOfFilesToCopy);i++)
{
files[i].CopyTo(destination);
}
答案 1 :(得分:1)
答案 2 :(得分:0)
在C#中使用System.IO.File.Copy(sourceFileName,destFileName)后跟System.IO.File.Delete(path)将为您执行“移动”。您可以创建一个简单的控制台应用程序,其中包含您需要的信息,然后完成工作。
有关文件操作的详细信息,请查看System.IO.File的文档。
答案 3 :(得分:0)
我不确定这是否符合您的所有要求,但在命令行中查看robocopy(robocopy /?
)可能会有用。
答案 4 :(得分:0)
不要以为我错过了什么= D
@ECHO OFF
::User Prompts
SET /p source=Source Folder? Use format DRIVE:\PATH\ :
SET /p destination=Destination Folder? Use format DRIVE:\PATH\ :
SET /p count=How many files to copy? :
::Setup the Batch file to schedule
DIR /B "%source%">>"%userprofile%\batchtemp\source.BAT"
SET batchfile=%userprofile%\batchtemp\source.BAT
ECHO SETLOCAL ENABLEDELAYEDEXPANSION>>"%batchfile%"
ECHO FOR /F "USEBACKQ tokens=*" %%A IN ("%batchfile%") DO ( >>"%batchfile%"
ECHO COPY /Y "%%~fA" "%destination%\%%~nxA">>"%batchfile%"
ECHO SET /a count=!count!-1>>"%batchfile%"
ECHO IF %count% EQU 0 GOTO CLEANUP>>"%batchfile%"
ECHO )>>"%batchfile%"
ECHO :CLEANUP>>"%batchfile%"
ECHO ENDLOCAL>>"%batchfile%"
::Setup the scheduled task based on a future time in minutes.
REM Given that the job will run on the same day not overlapping a 24 hour day
FOR /F "tokens=1-3 delims=: " %%F IN ('time /t') DO (
SET hours=%%F
SET minutes=%%G
)
FOR /F "tokens=1-4 delims=/ " %%F IN ('date /t') DO (
SET day=%%F
SET thedate=%%G/%%H/%%I
)
SET /a minutes=%minutes%+10
IF %minutes% GRT 60 SET /a minutes=%minutes%-60 & SET /a hours=%hours%+1
SCHTASKS /Create /TR "%batchfile%" /ST %hours%:%minutes%:00 /MO ONCE /D %day% /SD "%thedate%" /ED "%thedate%" /TN "Copy Files"