我正在尝试使用批处理文件列出目录中的文件,使得仅文件名(减去扩展名)仅匹配数字模式,例如125646543.pdf,这很容易表达为正则表达式[\ d] +\.pdf但当然我没有仅使用Windows机制的这些细节...我正在尝试使用仅限Windows的机制,因为我无法在目标服务器上安装任何其他东西,并且需要支持至少在Windows Server 2000和2003上.
我会针对这个特定的例子采取一个特定的解决方案,或者更通用的东西,比那些更为先进的东西*和?
我已经尝试使用set/a来为文件名添加一个数字,但由于它将字符串解释为环境变量而0(如果它们未定义),这不能很好地工作.我也尝试使用if %% ~na GTR 0,但它也匹配文本文件名,例如report.pdf,因为它似乎在这种情况下进行字符串比较.
我一直试图使端口转发与Net :: SSH一起正常使用。据我了解,如果我希望能够从同一个Ruby程序中使用Net :: SSH会话,则事件处理循环实际上可以处理通过连接发送的数据包。但是,这会导致您在下面看到的丑陋:
#!/usr/bin/env ruby -w
require 'net/ssh'
require 'httparty'
require 'socket'
include Process
log = Logger.new(STDOUT)
log.level = Logger::DEBUG
local_port = 2006
child_socket, parent_socket = Socket.pair(:UNIX, :DGRAM, 0)
maxlen = 1000
hostname = "www.example.com"
pid = fork do
parent_socket.close
Net::SSH.start("hostname", "username") do |session|
session.logger = log
session.logger.sev_threshold=Logger::Severity::DEBUG
session.forward.local(local_port, hostname, 80)
child_socket.send("ready", 0)
pidi = fork do
msg = child_socket.recv(maxlen)
puts "Message from parent was: #{msg}"
exit
end
session.loop do
status = waitpid(pidi, Process::WNOHANG)
puts "Status: #{status.inspect}"
status.nil? …Run Code Online (Sandbox Code Playgroud)