Process.CommandLine在powershell

时间:2015-07-14 01:12:03

标签: powershell split win32-process

这似乎应该非常简单,但我似乎无法找到方法。

代码

$processName = "notepad.exe"
$filter = "name like '%"+$processName+"'"
$result = Get-WmiObject win32_process -Filter $filter
$res = $result.CommandLine
$res

现在,当我运行上面的代码时,当我在记事本中打开了不同的文件时,我为 $ res 获得了2个不同的输出。那为什么它会给我2个不同的结果?

输出

"notepad.exe" full_file_path    

"C:\Windows\system32\NOTEPAD.EXE" full_file_path

当我使用以下代码

按空格分割$res输出时
$r = $res.Split("",2)
$r1 = $r[0]
$r2 = $r[1]

我得到了

$ R

"C:\Windows\system32\NOTEPAD.EXE"
full_file_path

$ R1

"C:\Windows\system32\NOTEPAD.EXE"

$ R2

full_file_path

现在使用Split-Path获取记事本所在的文件夹,

Split-Path $r1

我得到了

"C:\Windows\system32

而不是

C:\Windows\system32

但是当我跑步时

Split-Path "C:\Windows\system32\NOTEPAD.EXE"

我得到C:\Windows\system32。那么为什么Split-Path在作为参数传递变量时会给"C:\Windows\system32

1 个答案:

答案 0 :(得分:0)

问题是变量是一个字符串,它包含嵌入的引号,并抛出Split-Path,例如:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a href="#" class="show_hide" rel="#slidingDiv_1"> Show Datums </a> 
<br />
<div id="slidingDiv_1" style="height:300px; padding:20px; margin-top:10px; border-bottom:5px; solid #3399FF; display:none;">
  <div class="paginate">
    <ul>
      <li>1</li>
      <li>2</li>
      <li>3</li>
      <li>4</li>
      <li>5</li>
      <li>6</li>
      <li>7</li>
      <li>8</li>
      <li>9</li>
      <li>10</li>
      <li>11</li>
      <li>12</li>
      <li>13</li>
      <li>14</li>
      <li>15</li>
      <li>16</li>
      <li>17</li>
      <li>18</li>
      <li>19</li>
      <li>20</li>
      <li>21</li>
    </ul>
  </div>
</div>
<br/>
<a href="#" class="show_hide" rel="#slidingDiv_2"> Show Datums </a> 
<br />
<div id="slidingDiv_2" style="height:300px; padding:20px; margin-top:10px; border-bottom:5px; solid #3399FF; display:none;">
  <div class="paginate">
    <ul>
      <li>1</li>
      <li>2</li>
      <li>3</li>
      <li>4</li>
      <li>5</li>
      <li>6</li>
      <li>7</li>
      <li>8</li>
      <li>9</li>
      <li>10</li>
      <li>11</li>
      <li>12</li>
      <li>13</li>
      <li>14</li>
      <li>15</li>
      <li>16</li>
      <li>17</li>
      <li>18</li>
      <li>19</li>
      <li>20</li>
      <li>21</li>
    </ul>
  </div>
</div>

输出:

$p = '"C:\temp"'
$p
Split-Path $p

尝试此操作以消除引号:

"C:\temp"
"C:\

输出:

$r1 = $r1.Trim('"')
Split-Path $r1