我有一个字符串:
private testservice1:Testservice1;
constructor(/*private testservice1:Testservice1*/ injector:Injector) {
setTimeout(() => this.testservice1 = injector.get(Testservice1));
}
然后我删除不需要的空格并写入文件:
$FileContent = "
InstallMode = $InstallMode
Logfile = $Logfile
Silent = y
"
文件开头仍有空格。解决方案是:
$FileContent = $FileContent.Replace(" ","")
New-Item C:\Test.ini -Type File -Value $FileContent
但这是一个丑陋的修复,使代码看起来格式不佳。有没有更好的方法从文件中删除第一个空行?
答案 0 :(得分:3)
您是否考虑在File1.js (the file that exports the function):
export default myFunction(e) {
e.preventDefault();
// some code
}
window.onload = () => {
document.getElementById('some-element').addEventListener('change', e => myFunction(e));
}
File2.js:
import myFunction from './File1';
window.onload = () => {
document.getElementById('some-element').addEventListener('change', e => myFunction(e));
}
之前添加Trim
- 就像这样:
Replace
$FileContent = $FileContent.Trim().Replace(" ","")
删除前导和尾随空格。如果您只想删除其中一个,还有Trim
和TrimStart
。
答案 1 :(得分:1)
第一个字符实际上不是空格而是回车符(ASCII中为13),另一个是新行(ASCII中为10)。您可以使用以下公式进行检查:
[int[]][char[]]$FileContent
您应该收到类似的内容(字符串中所有字符的ASCII编号列表):
13
10
32
32
32
32
73
如果你想修剪它,你可以使用$FileContent.Substring(2)
来删除前两个字符。
Here您可以检查所有字符及其ASCII码。
答案 2 :(得分:0)
您可以使用here-string,它们可用于声明多行字符串。
由于字符串内容必须位于@"
的下一行,因此它会根据您的意愿显示,但在开头不包含换行符。
这样就无需使用Trim
,现有的Replace
仍可按原样运作。
$FileContent = @"
InstallMode = $InstallMode
Logfile = $Logfile
Silent = y
"@
答案 3 :(得分:0)
如果变量$Logfile
表示包含空格的路径,则.Replace(" ","")
方法也会删除这些空格。
所以我建议使用基于RegEx的-Replace
运算符,它可以在第一行^
处锚定
(可以省略空的替换部件)
## Q:\Test\2018\06\11\SO_50794799.ps1
$InstallMode = "doesn't matter"
$LogFile = '"C:\Program Files (x86)\_Tools\"'
$FileContent = @"
InstallMode = $InstallMode
Logfile = $Logfile
Silent = y
"@
$FileContent = $FileContent -Replace "(?sm)^\s+" -Replace ' = ','='
New-Item C:\Test.ini -Type File -Value $FileContent
InstallMode=doesn't matter
Logfile="C:\Program Files (x86)\_Tools\"
Silent=y