小编UpQ*_*ark的帖子

如何在该上下文中调试批处理文件调用的可执行文件?

我遇到了一个棘手的小问题.我有一个编译的C#可执行文件,在批处理文件中使用参数调用.我想通过VS2012调试器运行这个可执行文件,但是我不确定如何将调试器附加到可执行文件,因为它是从批处理脚本运行的.

我无法将批处理脚本设置为项目的调试启动文件(仅限.exes),并且我能找到的与批处理文件关联的唯一进程是cmd.exe,它不允许调试.我已经pause在批处理脚本的开头添加了一个,所以理想情况下该进程应该运行,我应该能够附加它,但我找不到任何预期的名称.

有人知道怎么做吗?这似乎是一个相当简单的问题,但我无法弄清楚如何将其纳入调试器.

c# batch-file visual-studio visual-studio-2012

3
推荐指数
1
解决办法
2724
查看次数

附加作为单击处理程序的函数在单击之前被调用

所以我有一个简单的应用程序,它使用本地数据结构动态地绘制折线图中的变量.变量名称及其对应颜色在折线图下方的图例中显示.一切都很标准.

我正在尝试添加功能,用户可以通过单击图例中的变量名称从折线图中删除单个变量.我尝试通过使用jQuery附加单击处理程序来执行此操作,如下所示:

$('.legendItem').click(removeVariable);
Run Code Online (Sandbox Code Playgroud)

但是,为了从基础数据结构中删除变量,removeVariable()需要变量名称.我将它存储data.legendItemspan 中的属性中.这样,我可以访问属性$('.legendItem').data('keyword')因为可以有许多不同的.legendItem元素,我希望动态地将data-keyword属性传递给每个被点击元素的removeVariable()函数.

但是,当我尝试将此数据传递添加到单击处理程序时,我遇到了麻烦.当我将'keyword'作为参数添加到removeVariable()并包括:

$('.legendItem').click(removeVariable($(this).data('keyword')));
Run Code Online (Sandbox Code Playgroud)

当我在Chrome JS调试器中调试时,removeVariable()函数由第二个示例调用,但不是第一个.由于click处理程序依赖于此脚本阶段不存在的数据,因此会导致错误.是否有任何明显的错误我忽视或更好的方式进行这种动态操作?

html javascript jquery

0
推荐指数
1
解决办法
81
查看次数

如何让批处理脚本为外部应用程序提供带特殊字符的密码?

我有一个批处理脚本,它为Windows服务提供了启动该服务所需的用户名和密码.但是,我遇到了一些问题,试图提供一个密码,该密码具有Windows批处理中的运算符.

我使用的密码有特殊字符,无法轻易更改以删除它们.在这种情况下,使用的特殊字符/批处理运算符是?>.我们说密码是my>passwor?d.密码存储在单独的批处理文件中,该文件将其"my>passwor?d"与引号一起存储,以防止将运算符解释为此类.

密码提供给外部服务:

%MY_DIRECTORY%\MyService.exe -service %MY_USER% %MY_PWD%

这是我遇到麻烦的地方.%MY_PWD%默认情况下,包含引号作为字符串的一部分.因此,当我按原样"my>passwor?d"提供时,提供给服务,这是不正确的,导致它失败.

当我删除引号以便我拥有my>passwor?d正确的密码时,运行>?运算符,并在执行批处理脚本时导致中断错误.

最后,当我躲避运营商,从而my>passwor?d成为my^>passwor\?d该脚本没有失败,但是提供给服务的密码包括转义字符,这是一错再错,导致服务失败.

是否有任何解决方案可以提供包含特殊字符的密码(或实际上是任何变量),而不包含转义字符或引号?

编辑:由于以下答案,我设法解决这个问题,我想要注意一点点补充.由于在外部共享文件中分配了变量,我无法更改

set MY_PWD="my>passwor?d"set "MY_PWD=my>passwor?d"

所以我不得不处理擦洗引号.我的代码最终看起来像:

setlocal enabledelayedexpansion

set MY_PWD=!MY_PWD:"=!

@echo Passing Credentials
/MyService.exe -service %MY_USER% !MY_PWD!
endlocal
Run Code Online (Sandbox Code Playgroud)

windows passwords cmd batch-file

0
推荐指数
1
解决办法
821
查看次数