在 运行 bat 命令后检查新文件夹
Check for new folder after running bat commands
有没有办法检查是否由于 运行在 bat 文件中执行了先前的命令而在特定父文件夹中创建了新文件夹(确切名称未知)?如果是 - 运行 另一个命令,将新文件夹的完整路径作为该命令的参数。
现在我正在使用一个文件夹监控软件来 运行 另一个 bat,如果创建了新文件夹。我希望只有一个脚本来执行这两项任务。
感谢您的帮助。
更改第二行的root_folder
位置
@回声关闭
设置 "root_folder=C:\something"
setlocal enableDelayedExpansion
set counter=1
for /d /r "%root_folder%" %%a in (*) do (
set "dirs[!counter!]=%%~sa" >nul
set /a counter=counter+1
)
rem ############################
rem # call your code here !!! #
rem ############################
call commands.bat
rem for /l %%l in (1,1,!counter!) do (
rem dir /x /b /s /a:d "%root_folder%" | findstr /i "dirs[%%l]"
rem )
set flag=0
for /d /r "%root_folder%" %%a in (*) do (
set dirs[|find /i "%%~sa" >nul 2>nul ||(
echo "%%~sa" is a new folder
set flag=1
)
)
if %flag% equ 0 (
echo no new folders
)
有没有办法检查是否由于 运行在 bat 文件中执行了先前的命令而在特定父文件夹中创建了新文件夹(确切名称未知)?如果是 - 运行 另一个命令,将新文件夹的完整路径作为该命令的参数。
现在我正在使用一个文件夹监控软件来 运行 另一个 bat,如果创建了新文件夹。我希望只有一个脚本来执行这两项任务。
感谢您的帮助。
更改第二行的root_folder
位置
@回声关闭
设置 "root_folder=C:\something"
setlocal enableDelayedExpansion
set counter=1
for /d /r "%root_folder%" %%a in (*) do (
set "dirs[!counter!]=%%~sa" >nul
set /a counter=counter+1
)
rem ############################
rem # call your code here !!! #
rem ############################
call commands.bat
rem for /l %%l in (1,1,!counter!) do (
rem dir /x /b /s /a:d "%root_folder%" | findstr /i "dirs[%%l]"
rem )
set flag=0
for /d /r "%root_folder%" %%a in (*) do (
set dirs[|find /i "%%~sa" >nul 2>nul ||(
echo "%%~sa" is a new folder
set flag=1
)
)
if %flag% equ 0 (
echo no new folders
)