powershell变量更新用于.msu文件,但不用于.exe文件

powershell变量更新用于.msu文件,但不用于.exe文件,powershell,Powershell,我在文件夹中有.msu和.exe文件。我正在为每个用户创建INI文件。对于.msu文件,它运行得很好。对于.exe文件,它先处理第一个文件,然后跳过其余文件。代码 $INIFileName = ($strItem -replace ".$fileExtention",".ini") 这似乎是个问题。它不会在初始.exe文件之后将以下任何.exe扩展名替换为.ini格式 输出: ** Creating .INI files for any msu's that don't have

我在文件夹中有.msu和.exe文件。我正在为每个用户创建INI文件。对于.msu文件,它运行得很好。对于.exe文件,它先处理第一个文件,然后跳过其余文件。代码

$INIFileName = ($strItem -replace ".$fileExtention",".ini")    
这似乎是个问题。它不会在初始.exe文件之后将以下任何.exe扩展名替换为.ini格式

输出:

  ** Creating .INI files for any msu's that don't have one ** 

Original file name with .exe: kb0000001.msu
New INI file name with .ini  : kb0000001.ini
Original file name with .exe: kb0000002.msu
New INI file name with .ini  : kb0000002.ini
Original file name with .exe: kb0000003.msu
New INI file name with .ini  : kb0000003.ini

  ** Creating .INI files for any exe's that don't have one ** 

Original file name with .exe: kb0000004.exe
New INI file name with .ini  : kb0000004.ini
Original file name with .exe: kb0000005.exe
New INI file name with .ini  : kb0000005.exe
  C:\Temp\PatchBundle\kb0000005.exe exists.  Skipping.
Original file name with .exe: kb0000006.exe
New INI file name with .ini  : kb0000006.exe
  C:\Temp\PatchBundle\kb0000006.exe exists.  Skipping.
PS C:\temp\PatchBundle> 
测试文件:(在代码中创建)
kb0000001.msu
kb0000002.msu
kb0000003.msu
kb0000004.exe
kb0000005.exe
kb0000006.exe

代码:


在第55行中,您将扩展名指定为msu inside if条件(对于msu文件,这不会生效,但对于第二个exe文件扩展名,将不会发生替换),如下所示:

   If (($fileExtention = 'msu') -and `
我想你是说

   If (($fileExtention -eq 'msu') -and `
   If (($fileExtention -eq 'msu') -and `