Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 动态定位所有文件并替换为特定的文件脚本_File_Batch File_Cmd_Locate - Fatal编程技术网

File 动态定位所有文件并替换为特定的文件脚本

File 动态定位所有文件并替换为特定的文件脚本,file,batch-file,cmd,locate,File,Batch File,Cmd,Locate,我一直在努力让语法正确,但我有问题。我不仅没有掌握正确的语法,而且希望此脚本: 在网络中的所有驱动器上找到符合特定条件的所有文件 检查该文件是更新的文件还是新文件 如果不是新文件或更新的文件,请找到新文件并将其替换 还有!如果我能让它按计划工作,比如每6小时一次。。。那将是一个真正的帮助 我让这个代码工作过一次,但我更改了几次,并保存了下来 @echo off SETLOCAL cls :locate_old for /d /r Z:\ %%a in (*) do if exist "%%~f

我一直在努力让语法正确,但我有问题。我不仅没有掌握正确的语法,而且希望此脚本:

在网络中的所有驱动器上找到符合特定条件的所有文件 检查该文件是更新的文件还是新文件 如果不是新文件或更新的文件,请找到新文件并将其替换 还有!如果我能让它按计划工作,比如每6小时一次。。。那将是一个真正的帮助

我让这个代码工作过一次,但我更改了几次,并保存了下来

@echo off
SETLOCAL
cls

:locate_old
for /d /r Z:\ %%a in (*) do if exist "%%~fa\old.file" set "oldFile=%%~fa\old.file"
if not defined oldFile (
echo old file not found...
) else (
echo old file found&GOTO oldFileCheck
)

:oldFileCheck
find "old file text" "%oldFile%" && echo old file is already updated || GOTO findNewFile

:findNewFile
for /d /r Z:\ %%a in (*) do if exist "%%~fa\new.file" set "newFile=%%~fa\new.file"
if not defined newFile (
echo no new file detected...
) else (
echo new file located...&GOTO fileSwap
)

:fileSwap
copy /y "%newFile%" "%oldFile%" && echo file updated || file not updated

如果我了解您的要求,您希望将Z:\上的所有旧.file文件替换为新的.file文件(如果尚未更新)。这是未经测试的:

@if not defined debug_batch_files echo off
REM You can set debug_batch_files to 1 and quickly see verbose execution
pushd Z:\
for /f "delims=" %%a in ('dir /b /s /a-d new.file') do echo xcopy /D /Y "%%~fa" "%%~dpaold.file"
REM Remove "echo" from the above line if it displays the right paths.
popd