在Windows 8.1 x64上启动任何Cygwin应用程序需要一分多钟.不要紧,无论是我开始mintty从快捷方式或cygwin.bat或ls.exe或bash.exe从bin文件夹.他们每个人都会很慢.
在Bash或mintty开始之后,他们的工作相当快:
$ time for i in {1..10} ; do bash -c "echo Hello" ; done
Hello
...
Hello
real 0m1.273s
user 0m0.060s
sys 0m1.181s
Run Code Online (Sandbox Code Playgroud)
步骤,我试过:
127.0.0.1 localhost cygdrive wpad到主机/etc/bash_completion.d文件夹)etc/profile.d文件夹运行etc/bash.bashrc文件运行我怎么能找到根本原因?
PS - 我有两个不同的系统,笔记本电脑和台式机都使用Windows 8.1 64位.这个问题在两者上都是100%可重复的.
此外,如果我在登录后几秒钟启动Bash,它会立即启动.
你可以帮我解决以下问题.
目标
在客户端(通过JS和HTML5类在浏览器中)逐行读取文件,而不将整个文件加载到内存中.
脚本
我正在处理网页,它应解析客户端的文件.目前,我正在阅读本文中描述的文件.
HTML:
<input type="file" id="files" name="files[]" />
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
$("#files").on('change', function(evt){
// creating FileReader
var reader = new FileReader();
// assigning handler
reader.onloadend = function(evt) {
lines = evt.target.result.split(/\r?\n/);
lines.forEach(function (line) {
parseLine(...);
});
};
// getting File instance
var file = evt.target.files[0];
// start reading
reader.readAsText(file);
}
Run Code Online (Sandbox Code Playgroud)
问题是FileReader立即读取整个文件,这会导致大文件崩溃的选项卡(大小> = 300 MB).使用reader.onprogress不能解决问题,因为它只会增加结果,直到它达到极限.
发明一个轮子
我已经在互联网上做了一些研究,并没有找到任何简单的方法来做到这一点(有很多文章描述了这个确切的功能,但在服务器端为node.js).
作为解决它的唯一方法,我只看到以下内容:
File.split(startByte, endByte)方法)但我最好使用现有的东西来避免熵增长.
我想从文件中导入外部函数,而不是将其转换为模块(我们有数百个每个函数的文件,所以将它们视为模块是过度的).
这是代码说明.请注意我在Import-Function中有一些额外的逻辑,比如添加脚本根文件夹并检查文件是否存在并抛出特殊错误,以避免每个需要这种导入的脚本中的代码重复.
C:\库\ Foo.ps1:
Function Foo {
Write-Host 'Hello world!'
}
Run Code Online (Sandbox Code Playgroud)
C:\ InvocationTest.ps1:
# Wrapper func
Function Import-Function ($Name) {
# Checks and exception throwing are omitted
. "C:\Repository\$name.ps1"
# Foo function can be invoked in this scope
}
# Wrapped import
Import-Function -Name 'Foo'
Foo # Exception: The term 'Foo' is not recognized
# Direct import
. "C:\Repository\Foo.ps1"
Foo # 'Hello world!'
Run Code Online (Sandbox Code Playgroud)
是否有任何技巧,将源点到全球范围?
我想将许多PowerShell脚本发布为构建系统上使用的Nuget包.
我想使用PowerShellGet为我和版本管理做安装工作.
我不希望这些脚本成为任何Visual Studio解决方案的一部分,而是作为独立脚本.
在任何系统上,配置的Nuget提供程序用户执行:
Install-Module MyModule
Run Code Online (Sandbox Code Playgroud)
从那时起,该模块的所有导出将永久可供该用户使用.用户也可以再次调用该命令来更新这些脚本的版本.
你可以在这里找到当前的包状态:GitHub
我已将Nuget提供程序添加并配置到我们的本地Nuget服务器
要做这个电话Get-PackageProvider -Name NuGet -ForceBootstrap和Set-PSRepository -Name My_Nuget_Repo -SourceLocation http://my-nuget/api -InstallationPolicy Trusted
Import-Module我可以通过Install-Modulecmdlet 安装该软件包,稍后我会在Get-InstalledModule列表中看到它.
但是,没有可用的功能.
此外,无论如何,但Install-Module不从我的包中调用任何脚本:
ScriptsToProcess从MyModule.psd1Install.ps1从tools文件夹调用Init.ps1从tools文件夹调用Import-Module(从Visual Studios安装时,相同的包正常工作Install-Package MyModule,调用脚本,导入PowerShell模块).
因为PowerShellGet基于OneGet它似乎问题是在Install-Packagecmdlet(在cmdlet中调用Install-Module). …
你好,
我们拥有数百台虚拟机的大型环境.在我们的服务部署期间,我们需要将一些文件从build drop复制到所有这些机器.
所以,我们有:
Powershell用作脚本语言.就像是:
$buildDrop = "\\sourceMachine\Build"
$machineTarget = "targetMachine"
Invoke-Command -ComputerName $machineTarget -ArgumentList $buildDrop -ScriptBlock {
Param( $buildDrop )
Test-Path $buildDrop # Will return False
}
Run Code Online (Sandbox Code Playgroud)
这种方法导致双跳问题,由于在XP和2k3机器上不支持CredSSP功能,我无法解决这个问题.在用户计算机上调用的副本会导致性能瓶颈(数据通过用户计算机传输).
是否有任何方法可以使所有目标机器始终显示构建丢弃?可能以某种方式将它们添加到受信任的位置或类似的东西?
提前致谢!
在Windows 11月更新(PackageManagement以及PowerShellGet1.0.0.1版本的模块)之后,我无法再将HTTPS NuGet服务器注册为PSRepository:
Register-PSRepository -Name test -SourceLocation https://some-nuget/api/v2
Run Code Online (Sandbox Code Playgroud)
它返回错误:
# Register-PSRepository : The specified Uri 'https://some-nuget/api/v2' for parameter 'SourceLocation' is an invalid Web Uri. Please ensure that it meets the Web Uri requirements.
Run Code Online (Sandbox Code Playgroud) 打字稿项目,使用打字稿mocha测试.项目应该从Typescript转换到ES6,然后通过Babel转换成几个可发送的捆绑包.
我想通过Karma(最终是BrowserStack)在浏览器中运行所有测试,而不是将由babel生成的相同转换版本.
我有karma-typescript + mocha工作,但仅限于es2017兼容的浏览器.问题是插入两者之间的babel.
我想我已经尝试了我能想到的一切,但是:
some/some.js文件时它会失败,这似乎只存在于业力记忆中.还有上述所有以及更多的变化,其中没有一个起作用.
karma-babel-preprocessor我认为这应该是一个正确的方法,所以我发布了一个项目,我目前的状态:https://github.com/anpur/karma-typescript-babelify.
这是我的一部分karma.conf.js:
frameworks: ['mocha', 'karma-typescript'],
preprocessors: {
'src/*.ts': ['karma-typescript', 'babel'],
},
babelPreprocessor: {
options: {
presets: [
[ 'es2015' ]
]
}
},
karmaTypescriptConfig: {
compilerOptions: {
sourceMap: true,
target: 'es6'
},
bundlerOptions: {
addNodeGlobals: true,
sourceMap: true
},
tsconfig: './tsconfig.json'
},
Run Code Online (Sandbox Code Playgroud)
Karma能够在这个设置中进行转换 …
babel typescript karma-runner karma-babel-preprocessor karma-typescript
.NET库中是否有任何可以作为过期的类Lazy<T>?
这个想法是Func<T>值工厂lambda在那里传递并且仅在第一次或者超时传递时调用.
我已经创建了简单的类来做到这一点,但我想避免发明一个轮子.
public class ExpiringLazy<T>
{
private readonly object valueGetLock = new object();
private readonly Func<T> valueFactory;
private readonly TimeSpan timeout;
private T cachedValue;
private DateTime cachedTime;
public T Value
{
get
{
Thread.MemoryBarrier();
if (cachedTime.Equals(default(DateTime)) || DateTime.UtcNow > cachedTime + timeout)
{
lock (valueGetLock)
{
if (cachedTime.Equals(default(DateTime)) || DateTime.UtcNow > cachedTime + timeout)
{
cachedValue = valueFactory();
Thread.MemoryBarrier();
cachedTime = DateTime.UtcNow;
}
}
}
return cachedValue;
}
}
public ExpiringLazy(Func<T> valueFactory, TimeSpan timeout)
{ …Run Code Online (Sandbox Code Playgroud) 无论,$ErrorActionPreference变量和-ErrorActioncmdlet的参数应该定义的行为是非终止错误.
由于变量是全局的,并且参数特定于cmdlet调用,因此我希望该参数覆盖变量.事实上,我找不到任何情况,哪里-ErrorAction做任何事情.
$expression = 'Write-Error "non-terminating error"'
# No exception
$ErrorActionPreference = 'Continue'
Invoke-Expression -Command $expression
# Exception
$ErrorActionPreference = 'Stop'
Invoke-Expression -Command $expression
# No exception, why?
$ErrorActionPreference = 'Continue'
Invoke-Expression -Command $expression -ErrorAction Stop
# Exception, why?
$ErrorActionPreference = 'Stop'
Invoke-Expression -Command $expression -ErrorAction Continue
Run Code Online (Sandbox Code Playgroud)
PS - 我发现了这个问题,但它更侧重于相关问题而非优先级问题.

有一种方法可以在不知道上面元素的高度的情况下迫使div占据所有可用高度?
如果知道高度,则可以使用vh单位,例如,如果height: 100vh - 30px;#header 的高度为30px,则可以将其应用于#view。
我在jsFiddle中做了一个小例子:
<div id="header">
Header
</div>
<div id="view">
View
</div>
#header {
height: 50px;
}
#view {
height: calc(100vh - 50px);
}
Run Code Online (Sandbox Code Playgroud) powershell ×5
html ×2
html5 ×2
oneget ×2
windows ×2
.net ×1
babel ×1
c# ×1
client-side ×1
collections ×1
css ×1
cygwin ×1
filereader ×1
height ×1
javascript ×1
karma-runner ×1
linq ×1
nuget ×1
python ×1
remoting ×1
typescript ×1
viewport ×1
windows-8.1 ×1
windows-xp ×1