Batch file 批处理:使用FOR命令检查文件夹中的文件

Batch file 批处理:使用FOR命令检查文件夹中的文件,batch-file,Batch File,我做了​​执行以下任务的批处理脚本: 如果文件abc.laccdb仍在update文件夹中,则显示一条消息:请稍候……。如果abc.laccdb文件不在“更新”文件夹中,则显示一条消息:成功更新数据。 我的批处理脚本是: @ECHO OFF start update_data.vbs :check FOR %%F IN (update\abc.laccdb) DO ( echo wait a minute... goto :check ) echo updating data successfu

我做了​​执行以下任务的批处理脚本: 如果文件
abc.laccdb
仍在
update
文件夹中,则显示一条消息:
请稍候……
。如果
abc.laccdb
文件不在“更新”文件夹中,则显示一条消息:
成功更新数据。

我的批处理脚本是:

@ECHO OFF
start update_data.vbs
:check
FOR %%F IN (update\abc.laccdb) DO (
echo wait a minute...
goto :check
)
echo updating data successfully
pause

使用上面的脚本,“稍等片刻…”消息将持续显示在命令提示窗口中,即使
abc.laccdb
文件未在
Update
文件夹中。如果
abc.laccdb
文件不在
Update
文件夹中,则bacth应用程序将正确运行下一行
(echo更新数据成功)
。请更正我的脚本。谢谢:)

带有通配符的
for
命令将枚举与通配符匹配的文件,但如果没有通配符,它将无法确保文件存在,因此无论文件是否存在,
do
子句中的代码都将始终执行

使用

@ECHO关闭
启动更新_data.vbs
:检查
ping-n3 localhost>nul2>nul
如果存在“更新\abc.laccdb”(
等一下。。。
后藤:检查
)
echo已成功更新数据
暂停

在没有等待的情况下进行等待循环并不总是一个好主意。包含了
ping
,可在循环之间产生2秒的暂停,以减少cpu使用

带有通配符的
for
命令将枚举与通配符匹配的文件,但如果没有通配符,它将无法确保文件存在,因此无论文件是否存在,
do
子句中的代码将始终执行

使用

@ECHO关闭
启动更新_data.vbs
:检查
ping-n3 localhost>nul2>nul
如果存在“更新\abc.laccdb”(
等一下。。。
后藤:检查
)
echo已成功更新数据
暂停

在没有等待的情况下进行等待循环并不总是一个好主意。包含了
ping
,可在循环之间产生2秒的暂停,以减少cpu使用

带有通配符的
for
命令将枚举与通配符匹配的文件,但如果没有通配符,它将无法确保文件存在,因此无论文件是否存在,
do
子句中的代码将始终执行

使用

@ECHO关闭
启动更新_data.vbs
:检查
ping-n3 localhost>nul2>nul
如果存在“更新\abc.laccdb”(
等一下。。。
后藤:检查
)
echo已成功更新数据
暂停

在没有等待的情况下进行等待循环并不总是一个好主意。包含了
ping
,可在循环之间产生2秒的暂停,以减少cpu使用

带有通配符的
for
命令将枚举与通配符匹配的文件,但如果没有通配符,它将无法确保文件存在,因此无论文件是否存在,
do
子句中的代码将始终执行

使用

@ECHO关闭
启动更新_data.vbs
:检查
ping-n3 localhost>nul2>nul
如果存在“更新\abc.laccdb”(
等一下。。。
后藤:检查
)
echo已成功更新数据
暂停
在没有等待的情况下进行等待循环并不总是一个好主意。包含了
ping
,可在循环之间产生2秒的暂停,以减少cpu使用

使用用户的答案:

@ECHO OFF
    echo wait a minute...
    start update_data.vbs
    ping -n 5 localhost >nul 2>nul 
:check
    if exist "update\abc.laccdb" (
        ping -n 3 localhost >nul 2>nul 
        goto :check
    )
    echo updating data successfully
    pause
显示
回音等待一分钟…
提前发送消息…

使用用户的回答:

@ECHO OFF
    echo wait a minute...
    start update_data.vbs
    ping -n 5 localhost >nul 2>nul 
:check
    if exist "update\abc.laccdb" (
        ping -n 3 localhost >nul 2>nul 
        goto :check
    )
    echo updating data successfully
    pause
显示
回音等待一分钟…
提前发送消息…

使用用户的回答:

@ECHO OFF
    echo wait a minute...
    start update_data.vbs
    ping -n 5 localhost >nul 2>nul 
:check
    if exist "update\abc.laccdb" (
        ping -n 3 localhost >nul 2>nul 
        goto :check
    )
    echo updating data successfully
    pause
显示
回音等待一分钟…
提前发送消息…

使用用户的回答:

@ECHO OFF
    echo wait a minute...
    start update_data.vbs
    ping -n 5 localhost >nul 2>nul 
:check
    if exist "update\abc.laccdb" (
        ping -n 3 localhost >nul 2>nul 
        goto :check
    )
    echo updating data successfully
    pause

显示
echo等待一分钟…
提前发送消息…

谢谢您的建议,但不要继续工作。命令提示符中持续显示消息“稍等…”window@flyingbird013,因为文件夹/文件的路径是相对于当前active directory(而不是批处理文件夹)的,请确保检查正确的文件夹/文件。
等待一分钟…
将为每个循环显示,直到删除标志文件。如果不想重复,请将
回音移动到
标签前面:检查
标签好消息。。在我将行
ping-n3localhost>nul2>nul
更改为
ping-n6localhost>nul5>nul
之后,我的问题就解决了。非常感谢你的建议,但不要继续工作。命令提示符中持续显示消息“稍等…”window@flyingbird013,因为文件夹/文件的路径是相对于当前active directory(而不是批处理文件夹)的,请确保检查正确的文件夹/文件。
等待一分钟…
将为每个循环显示,直到删除标志文件。如果不想重复,请将
回音移动到
标签前面:检查
标签好消息。。在我将行
ping-n3localhost>nul2>nul
更改为
ping-n6localhost>nul5>nul
之后,我的问题就解决了。非常感谢你的建议,但不要继续工作。命令提示符中持续显示消息“稍等…”window@flyingbird013,因为文件夹/文件的路径是相对于当前active directory(而不是批处理文件夹)的,请确保检查正确的文件夹/文件。
等待一分钟…
将为每个循环显示,直到删除标志文件。如果不想重复,请将
回音移动到
标签前面:检查
标签好消息。。在我将行
ping-n3localhost>nul2>nul
更改为
ping-n6localhost>nul5>nul
之后,我的问题就解决了