eval
для разбора JSON.echo %password% | runas
0</* :
@echo off
set COMMAND="%~dp0application.exe"
CScript //e:JScript //nologo //t:0 //i "%~f0" <configuration.json
exit /b
*/0;
var conf = eval("(" + WScript.StdIn.ReadAll() + ")");
var WshShell = new ActiveXObject("WScript.Shell");
var Cmd = WshShell.Exec("cmd /q echo off");
var CmdIn = Cmd.StdIn;
var WinTitle = "rnd" + Math.random();
CmdIn.WriteLine("title " + WinTitle);
while (!WshShell.AppActivate(WinTitle)) WScript.Sleep(1);
WshShell.SendKeys("*~");
CmdIn.WriteLine("doskey /exename=runas.exe *=" + conf.Password);
CmdIn.WriteLine("start /b runas /user:"
+ conf.Domain + "\\" + conf.Login
+ " %COMMAND%>con 2>&1 <con"); // RUNAS <CON -- важно!
CmdIn.WriteLine("exit");
Cmd.Stdout.ReadAll();
set a=1
set a=2& echo %a%
set a=1
(
set a=2
echo %a%
)
set /a M=%NUMBER_OF_PROCESSORS%/2 & echo !M!> 1.txt
setlocal enabledelayedexpansion
cmd.exe
должен быть запущен с ключом /v
или режим отложенного раскрытия переменных по умолчанию должен быть задан в реестре (см. set /?
,setlocal /?
, cmd /?
).call
:set /a M=%NUMBER_OF_PROCESSORS%/2 & call echo %%M%%> 1.txt
set /a M=%NUMBER_OF_PROCESSORS%/2 & call echo ^%M^%> 1.txt
set /a
для отложенного раскрытия переменных их можно записывать не как %var%
или !var!
, а просто var
:set /a M = NUMBER_OF_PROCESSORS / 2
start
.start
, то первый параметр этой команды в кавычках рассматривается как заголовок нового окна, в котором будет запущена вызываемая команда (сработает только для консольной команды вызываемой без ключа /b
).start "команда в кавычках"
start "" "команда в кавычках"
ReadAll
подавится и зависнет), то можно как-то так0</* : :
@ echo off
start /b CScript.exe //e:JScript //nologo //t:0 //i "%~fs0"
exit /b
*/ 0;
var WshShell = new ActiveXObject("WScript.Shell");
var text = WshShell.Exec("C:\\check.exe --param 43").StdOut.ReadAll();
WScript.Sleep(3000);
var FileSystemObject = new ActiveXObject("Scripting.FileSystemObject");
var TextFile = FileSystemObject.CreateTextFile("C:\\results\\43.txt", true);
TextFile.Write(text);
TextFile.Close();
Прога распаковывается по всяким темпам а их кидать в исключения не очень умно.
set "TEMP=D:\MyTemp"
set "TMP=D:\MyTemp"
start "" MyApp.exe
cmd /c set "TEMP=D:\MyTemp"&set "TMP=D:\MyTemp"&start "" MyApp.exe
set
, но какой именно заранее сказать не могу.)start
(или использовать с ключом /wait
), чтобы дождаться завершения перед удалением каталога. findstr
выполнить:rem Перекодировка файла в UTF-16 c BOM(!) в текущую кодировку консольного окна
cmd /a /c type temp.txt >temp2.txt
move /y temp2.txt temp.txt
more temp.txt | findstr /C:"SID" >out.txt 2>error.txt
more <temp.txt | findstr /C:"SID" >out.txt 2>error.txt
find /v "" <temp.txt | findstr /C:"SID" >out.txt 2>error.txt
findstr
использовать find
:find "SID" <temp.txt >out.txt 2>error.txt