Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 如何在forfiles批处理脚本中执行多个命令_Windows_Batch File_For Loop - Fatal编程技术网

Windows 如何在forfiles批处理脚本中执行多个命令

Windows 如何在forfiles批处理脚本中执行多个命令,windows,batch-file,for-loop,Windows,Batch File,For Loop,我们希望创建一个批处理脚本,为每个.xml文件运行一个命令。该命令应针对每个不以_m结尾的文件运行。我们试图用forfiles遍历每个文件,但我们不知道如何将do与它一起使用 这是我们当前不工作的脚本,我们尝试遍历每个文件。标识文件名,如果以_m结尾,则将其子字符串设置为不运行命令 谢谢你的帮助 for /f "delims=" %%a in ( 'dir /b /a-d *.xml^|findstr /v /e /i /L "_m.xml" ' ) do ( ssoadm import

我们希望创建一个批处理脚本,为每个.xml文件运行一个命令。该命令应针对每个不以_m结尾的文件运行。我们试图用forfiles遍历每个文件,但我们不知道如何将do与它一起使用

这是我们当前不工作的脚本,我们尝试遍历每个文件。标识文件名,如果以_m结尾,则将其子字符串设置为不运行命令

谢谢你的帮助

for /f "delims=" %%a in (
 'dir /b /a-d *.xml^|findstr /v /e /i /L "_m.xml" '
) do (
   ssoadm import-entity --cot something--realm something--spec saml2 -m "%%a" -x %extended --adminid something--password-file password --debug
)
对于
/b
基本格式(仅名称)
/a-d
中a
目录
中的每个条目,不带目录名;查找
/v
/e
结束
/i
不区分大小写的
/L
字面上的“-m.xml”,将找到的完整名称分配给
%%a

不知道ssoadm做什么,但是

%%~na
将生成文件的基名,
%%~xa
将生成扩展名

您的代码可能可以工作,但您需要调用
延迟扩展
(搜索SO)并修改代码以适应延迟扩展方法(如多次记录的那样)



…根据您的意愿选择零件/常量,并以meccano风格将它们组合在一起。

只需使用内置的
for
命令而不是外部的
for files
命令,您就可以使用
do
。谢谢您的帮助。我还是不明白我到底想要什么。假设我有四个文件:file1.xml、file1_m.xml、file2.xml和file2_m.xml,我需要在每个命令中使用这些对。我该怎么做?这是我要运行的命令:
somecommand-xfile1.xml-m file1\m.xml
somecommand-xfile2.xml-m file2\m.xml
for /f "delims=" %%a in (
 'dir /b /a-d *.xml^|findstr /v /e /i /L "_m.xml" '
) do (
   ssoadm import-entity --cot something--realm something--spec saml2 -m "%%a" -x %extended --adminid something--password-file password --debug
)
for /f "delims=" %%a in (
 'dir /b /a-d *.xml^|findstr /v /e /i /L "_m.xml" '
) do (
   echo(%%~na
   echo(%%~xa
   echo(%%~nxa
   echo(%%a
   echo(%%a %%~na_M%%~xa
)