If statement 我需要帮助写这个批处理脚本

If statement 我需要帮助写这个批处理脚本,if-statement,for-loop,batch-file,switch-statement,If Statement,For Loop,Batch File,Switch Statement,我想让这个脚本在文件名以一个东西开头时执行另一个脚本,如果文件名以另一个东西开头时执行另一个脚本,如果文件名以其他东西开头,则继续执行代码的其余部分。我希望它遍历文件夹中的所有文件,并检查是否符合此条件。我已经为它工作了一段时间,我正在寻找一双新的眼睛,因为我似乎无法让它正常工作。任何帮助都将不胜感激 :======================================================================================== :: purp

我想让这个脚本在文件名以一个东西开头时执行另一个脚本,如果文件名以另一个东西开头时执行另一个脚本,如果文件名以其他东西开头,则继续执行代码的其余部分。我希望它遍历文件夹中的所有文件,并检查是否符合此条件。我已经为它工作了一段时间,我正在寻找一双新的眼睛,因为我似乎无法让它正常工作。任何帮助都将不胜感激

 :========================================================================================
:: 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%

一个问题是,您必须在
SOURCE\u DIR=here\there
后面加一个反斜杠,否则它将在此处查找
here\thereFileStartingWithBlahBlergOrOther.docx

您在帖子中缺少问题。。。只有你想做的。。。考虑删除<代码>回音> /COD>并查看是否可以使脚本输出更为有效。然后将你对脚本的问题添加到你的文章中。请编辑你的问题并使标题有意义。“我需要帮助”对未来试图找到问题解决方案的用户没有帮助;作为搜索结果,它绝对没有任何意义。它也没有告诉我们你的问题或者你的问题可能是什么。此外,如果你不告诉我们“不工作”是什么意思,说“它不工作”也无济于事。我们无法看到您的屏幕或从我们所在的位置读取您的想法,因此您需要向我们提供帮助您所需的信息。谢谢。它在执行其中一个被调用的脚本后停止。另外,它似乎忽略了前两个调用,只执行了底部部分。当您删除echo off时,您看到了什么,定义了
%completepath%
?有任何文件是从blah*开始的吗?如果脚本停止在脚本上,脚本中也可能出现问题。