[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
大概像这样
  1. #@&cls&powershell "type '%~0'|out-string|iex"&pause&exit
  2. $Runspace = [runspacefactory]::CreateRunspace()
  3. $PowerShell = [powershell]::Create()
  4. $PowerShell.runspace = $Runspace
  5. $Runspace.Open()
  6. [void]$PowerShell.AddScript({
  7.     while(1){
  8.         if($env:a -ne $null){break}
  9.         sleep 1
  10.     }
  11.     start cmd "/k echo $env:a"
  12. })
  13. $AsyncObject = $PowerShell.BeginInvoke()
  14. while(1){
  15.     $env:a+=[console]::readkey(1).keychar
  16. }
复制代码

TOP

回复 10# tmpuser


    就和bat一样存为bat文件来用,简单的当bat来用就是语法不一样
思路就像flash大佬讲的循环拖放消息,就是实现的时候绕了个弯

TOP

双字节字符后8位会串到下一个键
加个判断就好了
  1. @echo off
  2. set/p=拖入文件:<nul
  3. for /f "delims=" %%I in (
  4.     'powershell "[text.encoding]::default.getstring([byte[]]($(do {[int][console]::ReadKey(1).KeyChar} while ([console]::KeyAvailable))|foreach{if([int]$_ -gt 255){[bitconverter]::GetBytes([int]$_)[0]}else{$_}}))"'
  5. ) do set "wj=%%~I"&echo=
  6. echo=%wj%
  7. pause
复制代码
1

评分人数

TOP

返回列表