有阴也有阳 发表于 2019-7-1 11:18:23

求一个批处理

本帖最后由 有阴也有阳 于 2019-7-1 11:36 编辑

       求一个“从A盘——Z盘搜索X文件夹里面的Y.bat并运行Y.bat”的批处理命令——在PE中运行的,谢谢!!!

      不知这样写对吗:

for %%i in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
    if exist "%%i:\X" (
      echo "%%i:\X"
      pecmd "%%i:\X\Y.bat"
    )
)




hilsonma 发表于 2019-7-1 11:47:14

for %%i in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (if exist %%i:\X\Y.bat call %%i:\X\Y.bat)

dos时代菜鸟 发表于 2019-7-1 12:02:46

如果有 pecmd 为啥不用 pecmd 的 forx 完成?

foxfirefox 发表于 2019-7-1 12:18:19

for %%i in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
    if exist "%%i:\X\Y.bat" (
      pecmdexec "%%i:\X\Y.bat"
    )
)

有阴也有阳 发表于 2019-7-1 14:31:41

hilsonma 发表于 2019-7-1 11:47
for %%i in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (if exist %%i:\X\Y.bat call %%i: ...

谢谢!!!

有阴也有阳 发表于 2019-7-1 14:31:55

foxfirefox 发表于 2019-7-1 12:18
for %%i in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
    if exist "%%i:\X\Y.bat" ( ...

谢谢!!!

2010eflying 发表于 2019-7-2 10:06:09

本帖最后由 2010eflying 于 2019-7-2 20:48 编辑

FORX\Y.bat,mybat,0,EXEC %mybat%

有阴也有阳 发表于 2019-7-2 10:17:10

2010eflying 发表于 2019-7-2 10:06
IFOX \Y.bat, mybat,0,exec %mybat%

谢谢!!!

魅力舞兵 发表于 2019-7-2 16:40:43

有阴也有阳 发表于 2019-7-2 16:54:56

魅力舞兵 发表于 2019-7-2 16:40
边学边用,边用边学风水   起名   算命算卦   风水大师   起名大师算命大师   公司起名宝宝起名   鱼 ...

我是业余爱好,只能这样{:1_186:}。

有阴也有阳 发表于 2019-7-2 22:17:48

dos时代菜鸟 发表于 2019-7-1 12:02
如果有 pecmd 为啥不用 pecmd 的 forx 完成?

麻烦您写一个用FORX命令运行的菜单,谢谢!

dos时代菜鸟 发表于 2019-7-3 10:03:46

本帖最后由 dos时代菜鸟 于 2019-7-3 10:09 编辑


有阴也有阳 发表于 2019-7-2 22:17
麻烦您写一个用FORX命令运行的菜单,谢谢!
是不管有无重复,都 运行,还是只运行 第一个找到的 \x\y.cmd ?

只需要一句话就可以。

FORX \x\y.cmd,cmd1,0,exec %cmd1%
还可以设置 是否隐藏运行,是否 逐个等待运行。不知道你的具体要求。

有阴也有阳 发表于 2019-7-3 10:10:29

dos时代菜鸟 发表于 2019-7-3 10:03
是不管有无重复,都 运行,还是只运行 第一个找到的 \x\y.cmd ?

只需要一句话就可以。


不管有无重复都运行,谢谢!!!

dos时代菜鸟 发表于 2019-7-3 10:17:21

本帖最后由 dos时代菜鸟 于 2019-7-3 10:30 编辑

FORX \x\y.cmd,cmd1,0,exec =!%cmd1%就用这个 一句话,就行了。这是隐藏等待一个一个的运行。
pecmd 的 forx 指令帮助信息如下:
┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃    │命令│'FORX'                                                                                    ┃
┃    ├──┼──────────────────────────────────────────────┨
┃    │格式│FORX [*ab] [*cur] ] [@|$][[!]\]文件,变量,┃
┃    │    │   [次数],命令及参数                                                                      ┃
┃    │    │FORX * 变量表,<变量>,<命令> [参数表]                                                      ┃
┃    │    │FORX *NL 多行PE变量名,<变量>,<命令> [参数表]                                              ┃
┃    ├──┼──────────────────────────────────────────────┨
┃    │功能│对匹配的文件目录进行对应的命令操作,本命令的功能类似CMD.EXE的for命令。                      ┃
┃    ├──┼──────────────────────────────────────────────┨
┃    │参数│   *ab 排除AB移动盘;/S 搜寻子目录;/O:N 按名字排序;/O:-N 反序。*cur:当前盘符优先         ┃
┃    │    │   *qu[~]支持"定界                                                                        ┃
┃    │    │■文件: 指定文件目录名,可带有通配符。                                                      ┃
┃    │    │■变量: 指定变量名,指代找到文件,该变量不要重名。参数表中可以多处引用。                  ┃
┃    │    │■次数: 对匹配的文件目录执行相应次数的命令操作,<=0表示对所有存在的文件执行命令操作。       ┃
┃    │    │■命令: WinCMD.EXE合法有效的命令,命令后的参数格式和个数由该命令而定。                      ┃
┃    │    │■多行PE变量名: 存储多行信息的变量名,注意只是名字则没有%.每次返回一行。只能是PE变量名。┃
┃    ├──┼──────────────────────────────────────────────┨
┃FORX│示例│◆FORX %CurDir%\Path1\*.DLL,AnyDLL,0,CALL $%AnyDLL%                                       ┃
┃    │    │◆FORX \auto*.INF,AutoRunVirus,0,FILE %AutoRunVirus%                                        ┃
┃    │    │◆FORX !\Tools\Tools.INI,MyIni,1,LOAD %MyIni%                                             ┃
┃    │    │◆FORX /S /O:-N C:\windows\*.INI,f,0,MESS %f% @#OK                                          ┃
┃    ├──┼──────────────────────────────────────────────┨
┃    │备注│※该命令可以搜索到带有属性的文件目录,如隐藏属性的文件目录。                              ┃
┃    │    │※前导"\"表示搜索所有分区。"!"表示对所有分区进行逆序搜索。                                  ┃
┃    │    │※前导"@"表示仅搜索目录,"$"搜索目录和文件,省略该前导表示仅搜索文件。                      ┃
┃    │    │※前导"*"表示变量表模式,以空字符分隔。                                                   ┃
┃    │    │※示例1,表示注册 %CurDir%\Path1\ 目录中的所有 DLL。                                        ┃
┃    │    │※示例2,表示删除所有分区根目录的 auto*.INF 文件。                                          ┃
┃    │    │※示例3,表示逆序搜索所有分区Tools目录下Tools.INI,并把搜索的第1个Tools.INI用LOAD命令加载。 ┃
┃    │    │※命令及参数为空时,变量返回找到的文件目录个数或命令执行的次数;为*返回文件列表。         ┃
┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫

有阴也有阳 发表于 2019-7-3 10:38:48

dos时代菜鸟 发表于 2019-7-3 10:17
就用这个 一句话,就行了。这是隐藏等待一个一个的运行。
pecmd 的 forx 指令帮助信息如下:

太感谢您了!谢谢!!!{:1_186:}

有阴也有阳 发表于 2019-7-3 17:12:07

2010eflying 发表于 2019-7-2 10:06
FORX\Y.bat,mybat,0,EXEC %mybat%

谢谢!!!经实际测试,此条命令无法在PE中运行。

2010eflying 发表于 2019-7-3 17:46:12

换成FORX\Y.bat,mybat,1,EXEC %mybat%试试

dos时代菜鸟 发表于 2019-7-5 18:48:30

有阴也有阳 发表于 2019-7-3 17:12
谢谢!!!经实际测试,此条命令无法在PE中运行。

两种方式,
一个是 把指令写入 ini 文件,用 “pecmd load ini文件” 调用这个文件
还有一种就是 直接用 pecmd forx 。。。。直接运行 pecmd 中的指令。
页: [1]
查看完整版本: 求一个批处理