我非常擅长在Windows上编写脚本.使用Windows 7 64.
我正在尝试创建一个我可以双击的.bat文件,并让它打开命令提示符并自动将cd我转到某个目录.
我尝试用.bat文件制作
@ECHO OFF
cmd "cd C:\my\destination"
Run Code Online (Sandbox Code Playgroud)
这打开了看起来像命令提示符,但似乎没有让我输入任何命令.
然后我尝试了:
@ECHO OFF
start cmd "cd C:\my\destination"
Run Code Online (Sandbox Code Playgroud)
但这只是让我进入一个循环开放吨和大量的提示,直到我的计算机崩溃:) .bat文件位于目标目录,如果这很重要.
我正在开发一个包含多个代码块的代码库,在document.ready()(jQuery)上设置一些行为.有没有办法强制在任何其他块之前调用一个特定的块?
背景:我需要在自动化测试环境中检测JS错误,因此我需要在任何其他JS代码执行之前开始记录JS错误的代码.
我注意到,当您将文本字段连接到数据列表时,不同的浏览器在建议文本字段的值时会有不同的行为.有些浏览器显示的条目与您键入的内容(IE,较旧的Chrome版本)完全一致,而其他浏览器显示的条目包含您键入的子字符串(firefox,较新的Chrome版本).
例如,键入i文本框,并观察建议:
browser:
<datalist id="browsers">
<option value="Google Chrome">Google Chrome</option>
<option value="Internet Explorer">Internet Explorer</option>
<option value="Firefox">Firefox</option>
<option value="Opera">Opera</option>
<option value="Safari">Safari</option>
<option value="Others">Others?</option>
</datalist>
<input type="text" name="browser" list="browsers">Run Code Online (Sandbox Code Playgroud)
(或者这里是小提琴,如果你喜欢http://jsfiddle.net/yaj8ut3m/)
在IE浏览器,它只会建议Internet Explorer,但Firefox和Chrome浏览器近期将建议Internet Explorer,Firefox和Safari.
有没有办法指定使用哪种自动建议过滤行为?
注意:javascript解决方案是不可接受的
我注意到,在枚举对象的属性时,似乎是在循环开始时获取当前属性的快照,然后迭代快照.我觉得这样,因为以下不会创建无限循环:
var obj = {a:0,b:0}, i=0;
for (var k in obj) {
obj[i++] = 0;
}
alert(i) // 2
Run Code Online (Sandbox Code Playgroud)
上面的代码演示了我正在添加新属性,但新属性不会被枚举.
但是,删除操作符似乎违反了我的快照理论.这是相同的代码,但在枚举之前删除属性.
var obj = {a:0,b:0}, i=0;
for (var k in obj) {
i++;
delete obj.b;
}
alert(i) // 1
Run Code Online (Sandbox Code Playgroud)
上面的代码演示了循环体只执行了一次.如果快照理论是真的,它会执行两次.
这里发生了什么?javascript是否具有它使用的某种类型的隐藏迭代器,并且delete运算符在某种程度上意识到它?
- 我意识到我正在假设有关迭代顺序的事情 - 特别是基于属性插入时间发生迭代.我相信所有浏览器都使用这样的实现.
我试图找到一个解决方案,但无法摆脱我的困扰.
我们给出了两个未排序的整数数组A和B.我们必须检查数组B是否是A的排列.如何做到这一点.甚至对数字进行异或也不会有效,因为可能存在几个具有相同XOR值bt的反例并不是彼此的排列.
解决方案需要O(n)时间和空间O(1)
欢迎任何帮助!! 谢谢.
鉴于这个实体
class SystemRecord
{
/**
* @ORM\Id
* @ORM\Column(type="integer", name="ID")
* @ORM\GeneratedValue
* @var int
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="Application\Entity\User")
* @ORM\JoinColumn(name="USER_SERIAL", referencedColumnName="SERIAL", nullable=false)
* @var User
*/
private $user;
/**
* @ORM\Column(type="utcdatetime", name="DATE_DATA_WAS_FETCHED", nullable=false)
* @var DateTimeInterface
*/
private $dateDataWasFetched;
}
Run Code Online (Sandbox Code Playgroud)
...而这个dql
$dql = "
select r
from Application\\Entity\\SystemRecord r
join Application\\Entity\\User u
where r.dateDataWasFetched = (
select max(r2.dateDataWasFetched)
from Application\\Entity\\SystemRecord r2
)
and u.serial = :serial
";
$query = $this->getEntityManager()->createQuery($dql);
$query->setParameter('serial', $user->getSerial());
$sql = $query->getSql();
Run Code Online (Sandbox Code Playgroud)
...我希望得到"具有指定序列的用户的SystemRecords,但只有那些具有最新日期的SystemRecord".换句话说,在程序上,"为任何用户查找任何SystemRecord的最新日期.然后查找在该日期发生的指定用户的记录."
如果我正在写sql,我会写 …
html5现在为该autocomplete属性提供了一些新的属性值,以在自动填充表单时帮助用户代理。新值之一new-password用于告诉用户代理输入新密码,而不是用户当前密码。
但是我不清楚,当您的表单使用户两次输入新密码作为确认时,如何正确地告诉它在两个字段中生成相同的密码?也许通过section-*在两个输入上使用相同的自定义前缀,例如autocomplete="new-password section-my-new-pw"?规范中提到section-*前缀会影响自动填充范围,但是对于我的情况而言,它并不过分具体。
我想这是一个示例表单,它代表了许多网站不久将要使用的表单-区分了current-password和new-password,并让用户确认新密码。
<form>
<p>Username <input type="text" autocomplete="username" name="username"></p>
<p>Current Password <input type="password" autocomplete="current-password" name="current-password"></p>
<p>New Password <input type="password" autocomplete="new-password" name="new-password"></p>
<p>Confirm New Password <input type="password" autocomplete="new-password" name="confirm-new-password"></p>
</form>
Run Code Online (Sandbox Code Playgroud)
如果答案引用的文档与有关当前浏览器或扩展程序行为的观察相反,则我更喜欢。
我有一个简单的关联数组.
$a = array("a"=>"b", "c"=>"d");
Run Code Online (Sandbox Code Playgroud)
我想检查数组中是否存在键"1",例如
isset($a["1"]);
Run Code Online (Sandbox Code Playgroud)
此字符串被视为整数,因此
echo $a["1"]; //prints "d"
Run Code Online (Sandbox Code Playgroud)
如何将其作为字符串处理?
我不想使用array_key_exists或in_array,因为我的基准测试显示isset会快得多.
在phpstorm中,您可以通过alt+ insert> setters>选择变量来为类成员生成setter方法来生成setter方法.
但是,即使phpstorm知道变量的类型/类,它也不会在参数列表中插入类型提示.
如何让phpstorm生成带有类型提示的setter,但仅限于类型hintable类型?
示例类
class CodeGenerationTest {
/* @var \DateTimeInterface */
private $date;
/* @var int */
private $num;
}
Run Code Online (Sandbox Code Playgroud)
所需的生成的setter应该是:
/**
* @param DateTimeInterface $date
*/
public function setDate(DateTimeInterface $date)
{
$this->date = $date;
}
/**
* @param int $num
*/
public function setNum($num)
{
$this->num = $num;
}
Run Code Online (Sandbox Code Playgroud)
setNum是正确的,但setDate生成时缺少参数的类型提示:
/**
* @param DateTimeInterface $date
*/
public function setDate($date)
{
$this->date = $date;
}
Run Code Online (Sandbox Code Playgroud) 我正在使用 spring security 来实现程序化的手动用户登录。我有一个场景,我已经确定了用户的身份,并希望让他们登录。我不知道他们的密码,因此无法使用常规登录代码路径,您将表单提交到 url,即通过 servlet 拦截Filter,完成所有的 auth+session 魔术。
我搜索过,似乎大多数人创建了自己的Authentication对象,然后通过以下方式告诉 spring:
PreAuthenticatedAuthenticationToken authentication = new PreAuthenticatedAuthenticationToken(user, "", user.getAuthorities());
SecurityContextHolder.getContext().setAuthentication(authentication);
Run Code Online (Sandbox Code Playgroud)
确实,这是有效的。Spring 甚至为我将其放入会话中,使后续的 http 请求保持其身份验证状态。
但是,我觉得这是一个肮脏的黑客。我将提供一些细节,希望能给出与setAuthentication()在控制器内部使用以实现手动登录相关的问题的具体示例:
给出一个想法,我的配置是:
httpSecurity
.authorizeRequests()
.antMatchers("/test/**").permitAll()
.antMatchers("/admin/**", "/api/admin/**").hasRole("USER_SUPER_ADMIN")
.and()
.formLogin()
.loginPage("/sign-in?sp")
.loginProcessingUrl("/api/auth/sign-in")
.successHandler(createLoginSuccessHandler())
.failureHandler(createLoginFailureHandler())
.permitAll()
.and()
.logout()
.logoutUrl("/api/auth/sign-out")
.logoutSuccessHandler(createLogoutSuccessHandler())
.and()
.sessionManagement()
.maximumSessions(1)
.maxSessionsPreventsLogin(true)
.sessionRegistry(sessionRegistry)
;
Run Code Online (Sandbox Code Playgroud)
上述配置中的要点:
我单步执行代码以查看 spring 如何处理表单登录。正如预期的那样,HttpSecurity当我使用表单登录时,Spring 执行了我的配置告诉它执行的所有会话/登录功能。但是,当我通过 进行自己的自定义/手动登录时SecurityContextHolder.getContext().setAuthentication(),它没有任何这些功能。这是因为 spring 在 servlet 内部完成了所有的会话/登录功能Filter,而我的编程代码不能真正调用过滤器。现在,我可以尝试添加缺少的功能自己,复制其代码:我看到弹簧过滤器用途:ConcurrentSessionControlAuthenticationStrategy,ChangeSessionIdAuthenticationStrategy …
php ×3
html5 ×2
algorithm ×1
arrays ×1
autocomplete ×1
autofill ×1
batch-file ×1
command-line ×1
doctrine-orm ×1
dql ×1
isset ×1
java ×1
javascript ×1
jquery ×1
passwords ×1
permutation ×1
phpstorm ×1
spring ×1
sql ×1
windows ×1