2013-02-03 77 views
0

我想让这个脚本执行另一个脚本,如果一个文件名以一个事物开始,另一个如果它以另一个事件开始,并且继续通过其余的代码,如果它开始于还要别的吗。我希望它遍历文件夹中的所有文件并检查这个文件。我一直在研究它一段时间,并且正在寻找一组新的眼睛,因为显然我似乎无法正常工作。任何帮助,将不胜感激!我需要帮助写这个批处理脚本

:======================================================================================== 
:: purpose: 1. copy file(s) from the export dir (SOURCE_DIR) (ARCHIVE_DIR) 
::   2. copy file(s) from the export dir (SOURCE_DIR) (TARGET_DIR) 
::   3. once file(s) are processed delete them from the export dir (SOURCE_DIR) 
::======================================================================================= 
::  
@echo off 
setlocal 
:: Display the command line on the window's Title Bar 
title %0 %1 
set LOG_FILE="here.txt" 
set SOURCE_DIR=here\there 
set TARGET_DIR=here\nowHere 
set ARCHIVE_DIR=here\oldStuffnThings 
set FILE=FileStartingWithBlahBlergOrOther.docx 


echo --------------------------------------------------------------------------------------------------------------------------------------- >> %LOG_FILE% 
echo %DATE% %TIME% Starting file move >> %LOG_FILE% 


if not exist "%SOURCE_DIR%%FILE%" (
    echo %DATE% %TIME% "%SOURCE_DIR%%FILE%" not found >> %LOG_FILE% 
    echo %DATE% %TIME% no files to move so stopping >> %LOG_FILE% 
    exit 
) 


FOR /R %completepath% %%G IN (FileStartingWithBLAH*) DO (
    call C:\otherScript1 
) 

FOR /R %completepath% %%G IN (FileStartingWithBLERG*) DO (
    call C:\otherScript2 
) 





:: one at a time copy files to archive, copy to dir, then delete from the export dir 
FOR /R %SOURCE_DIR% %%G IN (%FILE%) DO (
echo %DATE% %TIME% %%G was found for processing >> %LOG_FILE% 
XCOPY %%G "%ARCHIVE_DIR%"/Y 
echo %DATE% %TIME% %%G was archived status %ERRORLEVEL% >> %LOG_FILE% 
XCOPY %%G "%TARGET_DIR%"/Y 
echo %DATE% %TIME% %%G was copied to dir status %ERRORLEVEL% >> %LOG_FILE% 
del %%G 
echo %DATE% %TIME% %%G was deleted from the export dir status %ERRORLEVEL% >> %LOG_FILE% 
) 

rem set err_code=%errorlevel% 
rem if %err_code% NEQ 0 (
rem echo %DATE% %TIME% **ERROR moving files %err_code% >> %LOG_FILE% 
rem exit  
rem) 
rem echo %DATE% %TIME% File(s) moved successfully >> %LOG_FILE% 

rem echo %DATE% %TIME% Process Complete >> %LOG_FILE% 
+1

你在后失踪的问题......只有你正在试图做...考虑删除'echo off',看看你是否可以更多地了解你的脚本输出......然后将你的脚本中的问题添加到你的文章中。 –

+2

请编辑你的问题,并使标题有意义。 “我需要帮助”对未来的用户试图找到问题的解决方案没有用;它作为搜索结果绝对没有意义。它也告诉我们关于你遇到的问题或你的问题可能是什么。另外,如果你不告诉我们什么是“不工作”的含义,那么说“它不工作”并不会起作用。我们无法看到您的屏幕或从我们所在的位置阅读您的想法,因此您需要提供我们所需的信息来帮助您。谢谢。 –

回答

0

的问题是,你必须把一个反斜杠SOURCE_DIR=here\there后或将查找​​

+0

执行其中一个被调用的脚本后停止。此外,它似乎忽略了2个第一次调用,只是执行底部。 –

+0

当你删除回声时,你看到了什么?是否定义了%完成路径%?有没有FileStartingWithBLAH *?如果脚本停在脚本中,脚本中也可能存在问题。 – user2033427