Board logo

标题: [其他] 代码分享:bat转exe后接收参数 [打印本页]

作者: 522235677    时间: 2016-3-8 16:26     标题: 代码分享:bat转exe后接收参数

本帖最后由 522235677 于 2016-3-8 16:28 编辑

正常情况下,当bat转exe后,给exe参数,但是exe程序并不会把参数再次传递给批处理文件。
此代码就是为了解决这个问题,不知前辈们有没有发过类似的帖子。

两种情况下的代码,第一种是用bat转exe工具
  1. @echo off & title zf
  2. for /f tokens^=3^delims^="" %%a in ('tasklist /v /fo csv^|find "zf"') do (
  3.   for /f "skip=1 delims="  %%b in ('wmic process  where handle^=%%a get commandline^|findstr "."') do call :start %%b
  4. )
  5. exit
  6. :start
  7. shift
  8. echo %1 %2
  9. pause
复制代码
第二种是用winrar自解压文件
  1. @echo off & title zf
  2. for /f tokens^=3^delims^="" %%a in ('tasklist /v /fo csv^|find "zf"') do (
  3.   for /f "skip=1" %%b in ('wmic process where handle^="%%a" get ParentProcessId^|findstr "."') do (
  4.     for /f "skip=1 delims="  %%c in ('wmic process  where handle^=%%b get commandline^|findstr "."') do call :start %%c
  5.   )
  6. )
  7. exit
  8. :start
  9. shift
  10. echo %1 %2
  11. pause
复制代码

作者: yu2n    时间: 2016-3-8 21:22

有没有第三方命令行exe,获取其他程序的命令行参数?
(用于 PE 环境下 winrar 自解压程序获取参数)
作者: codegay    时间: 2016-3-8 21:24

WMI太慢了就是。
作者: wskwfkbdn    时间: 2016-3-8 22:24

回复 2# yu2n


    木有的,但是需要也可以写出来
作者: CrLf    时间: 2016-3-8 22:41

回复 2# yu2n
  1. mshta http://bathome.net/s/hta/ array(wmi('Win32_Process')).where(function(o){return o.Name=='cmd.exe'}).select('commandline')
复制代码

作者: yu2n    时间: 2016-3-9 00:01

本帖最后由 yu2n 于 2016-3-9 01:01 编辑

回复 4# wskwfkbdn


    我不会用C语言,惭愧。也没有找到用C写的输出Command Line的命令行程序。


Update: I found this ......
TList - 来自[微软调试工具包]的进程查看程序,可查看命令行参数等…
http://www.bathome.net/thread-39606-1-1.html

作者: yu2n    时间: 2016-3-9 00:04

回复 5# CrLf


    依赖性有点大…www + cmd.exe + mshta.exe…

我是个传统保守的人。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2