我有以下结构:
E:
parent
subfolder1 contains mybatch.bat
subfolder2 contains mybatch.bat
....
subfoldern contains mybatch.bat
文件夹的数量是动态的,名称是未知的,每天文件夹名称包含当前日期时间戳。
让我们说mybatch.bat只包含这个
mkdir temp
我想从每个子文件夹中执行所有“mybatch.bat”。当我去每个子文件夹并手动执行mybatch.bat时,一切正常,将在子文件夹中创建一个名为“temp”的文件夹。
我想要的是一个批处理文件,它在每个文件夹中执行所有mybatch.bat,因此将在每个子文件夹中创建一个“temp”文件夹。我试过这个
cd E:\parent
for /f %%f in ('dir /ad /b') do start %~dp0%%f\mybatch.bat
问题是当我运行瘦身时,会在父文件夹中创建一个临时文件夹,并且子文件夹中不会创建任何内容。 我很感激帮助
由于
答案 0 :(得分:2)
我只是将其作为解决方案发布,因为代码无法正确放入评论中。这样的事情怎么样?
@echo off
setlocal enabledelayedexpansion
set _ROOT="E:\parent"
for /f "tokens=*" %%f in ('dir /ad /b !_ROOT!') do (
pushd "!_ROOT:"=!\%%f"
call a.bat
popd
)
<强> @ EDIT0 强>:
start
替换为call