需要帮助将此代码获取到控制台应用程序
Need help to get this code to console application
我有一个JavaScript代码,需要进入控制台应用程序。这个脚本通过cmd运行得很好,但我想用它制作一个控制台应用程序,这样它对用户更友好。有人能向我解释一下我如何在控制台应用程序中编写这些代码,或者通过链接将其附加到控制台应用程序内吗。我是控制台应用程序的新手,所以如果我问了什么愚蠢的问题,我很抱歉:-)
当我通过cmd使用它时,我会执行以下操作;-运行cmd。-键入"cd downloads",然后按enter键。-键入"cscript/nologo process.js log.txt 100 200",然后按enter键。-然后我会在cmd窗口中得到一个列表,我需要在下载文件夹中有process.js和log.txt才能完成这项工作。
if(WScript.Arguments.Count() < 3)
{
WScript.Echo("Usage: cscript process.js <filename> <lower_value> <upper_value>");
WScript.Quit();
}
var filename = WScript.Arguments.Item(0);
var lowerBound = parseInt(WScript.Arguments.Item(1));
var upperBound = parseInt(WScript.Arguments.Item(2));
WScript.Echo("Here is the data from the file associated with the text 'verdi', where the");
WScript.Echo("number following 'verdi' is above " + lowerBound + " and below " + upperBound);
var fso = new ActiveXObject("Scripting.FileSystemObject")
var file = fso.OpenTextFile("log.txt", 1, false);
var lines = file.ReadAll().split(''r');
var failed = 0;
for(var idx in lines)
{
try
{
if(lines[idx].indexOf('verdi') > 0)
{
var tmp = lines[idx];
var regex = /verdi's*'='s*('d+)/;
var result = regex.exec(tmp);
var num = parseInt(result[1]);
if(num >= lowerBound && num <= upperBound)
{
WScript.Echo(num);
}
}
}
catch(ex)
{
failed++;
}
}
if(failed > 0)
{
WScript.Echo("WARNING: one or more lines could not be processed!");
}
我已经在控制台应用程序中编写了这段代码,但它不能正常工作。我可以选择值并运行cmd。但我不会在窗口中获得结果并将结果打印到文档中。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication3
{
class Program
{
private static object cmd;
private static int verdi;
private static int s;
private static int d;
public static object WScript { get; private set; }
static void Main(string[] args)
{
//Choose lower and upper value
Console.WriteLine("Choose a lower and upper value:");
string value = Console.ReadLine();
//Choose file
Console.WriteLine("Choose a file to scan:");
string file = Console.ReadLine();
//Run the javascript code
Console.WriteLine("cd downloads");
Console.WriteLine("cscript /nologo process.js {0} {1} > mydata.txt", file, value);
string command = Console.ReadLine();
Console.WriteLine("Press any key to start scan");
System.Diagnostics.Process.Start("cmd.exe", "/C" + command);
//Quit Console Application
Console.WriteLine("Press any key to quit.");
Console.ReadKey();
}
}
}
Console.WriteLine
仅打印字符串。它不允许您执行命令。你可以试试这个:
string command = $"cscript /nologo c:/downloads/process.js c:/downloads/{file} {lowerValue} {upperValue} > mydata.txt");
System.Diagnostics.Process.Start($"cmd.exe /C {command}");
process.js
中也存在错误。该脚本总是从log.txt
读取并忽略文件名。
但你为什么在这里使用两个程序?你可以把所有的代码放在一个文件里。为什么一个使用JavaScript,另一个使用C#?
相关文章:
- 如何使用Protractor从Chrome控制台获取所有日志
- 执行JavaScript代码,使用selenium webdriver或WatiN从控制台获取日志
- jquery从url中获取参数也会在控制台日志中留下url
- 每次页面上的内容发生更改时,控制台都会获取.text()
- Firefox控制台获取'SyntaxError:非法字符
- 正在获取控制台消息的堆栈跟踪
- 如何获取控制台.log输出 getter 结果而不是字符串“[Getter/Setter]”
- 获取控制台包装器以在正确的行上记录消息
- 从控制台获取值.log并在输入字段中显示/打印/返回
- 无法从 javascript 中的对象获取属性,但在记录其父级时可以将其打印到控制台
- 如何从控制台获取信息
- Node.js Visual Studio工具如何获取错误/控制台消息以输出VS
- 需要帮助将此代码获取到控制台应用程序
- 通过控制台从网站获取链接集合
- 正在从控制台获取输入
- 从输入中获取数据,并在提交按钮上单击控制台日志记录数据
- 从Firebug控制台获取内容
- 在Chrome中从控制台运行代码时获取堆栈跟踪错误
- 获取错误"Cannot read property 'show'null"在控制台尝
- 在node.js中获取控制台路径