小编Lou*_*one的帖子

如何在powershell文件中的每一行使用正则表达式

在一个文件中我有那种线:

I     have lot         of spaces in      me.
Run Code Online (Sandbox Code Playgroud)

我用这个powershell代码用一个空格替换每个空格:

$String = "I     have lot         of spaces in      me."
while ($String.Contains("  "))
{
$String = $String -replace "  "," "}
Run Code Online (Sandbox Code Playgroud)

结果是:

I have lot of spaces in me.

我想对txt文件中的每一行执行此操作.你能给我最好的方法吗?


第二部分:

如果有多个空格,例如,我怎样才能更换东西;

答复将是:

;4828;toto;toto;Ticket;0112APPT
Run Code Online (Sandbox Code Playgroud)

并不是 :

;4828;toto toto;Ticket;0112APPT
Run Code Online (Sandbox Code Playgroud)

要清楚,我想用角色替换两个白空间 ;

regex powershell

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

如何执行具有可变值的exe的路径和参数

我试图在我的Powershell脚本中执行以下命令:

D:\Apps\Documentum\product\7.3\bin\idql.exe -udmadmin -pPassword dctm04 -RC:\temp\documentum\session_list.txt -w20 > C:\temp\documentum\session_logstash.txt
Run Code Online (Sandbox Code Playgroud)

在我的powershell脚本中,我这样做:

$DOCBASE="dctm04"
$USER_DOCBASE="dmadmin"
$USER_PWD="Password01"
$IDQL_PATH="D:\Apps\Documentum\product\7.3\bin"
$QRY_SESSIONS="C:\temp\documentum\session_list.txt"
$QRY_LOG_SESSIONS="C:\temp\documentum\session_logstash.txt"

$IDQL_PATH\idql.exe -u$USER_DOCBASE -p$USER_PWD $DOCBASE -R$QRY_SESSIONS -w20 > $QRY_LOG_SESSIONS
Run Code Online (Sandbox Code Playgroud)

但它无法正常工作,我收到以下错误:

At C:\temp\documentum\Generate.ps1:49 char:13
+   $IDQL_PATH\idql.exe -u$USER_DOCBASE -p$USER_PWD $DOCBASE -R$QRY_SESSIONS -w20  ...
+             ~~~~~~~~~
Unexpected token '\idql.exe' in expression or statement.
    + CategoryInfo          : ParserError: (:) [], ParseException
    + FullyQualifiedErrorId : UnexpectedToken
Run Code Online (Sandbox Code Playgroud)

我认为,我没有在命令上正确使用变量。

请注意,我的powershell版本是:

PS C:\temp\documentum> $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
4      0      -1     -1
Run Code Online (Sandbox Code Playgroud)

你能给我解决方案来解决我的问题吗

powershell

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

标签 统计

powershell ×2

regex ×1