Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 从for中的字符串中删除字符_Powershell - Fatal编程技术网

Powershell 从for中的字符串中删除字符

Powershell 从for中的字符串中删除字符,powershell,Powershell,我试图通过删除最后25个字符来获取病毒的文件夹位置,我发现这可以通过我已经测试过的代码来实现,并且运行良好 $string = "the scripts" $string = $string.Substring(0,$string.Length-1) $string 示例字符串 C:\Users\jose\Desktop\MUSICA\011_Leyendas\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe C:\Users\jose\Deskt

我试图通过删除最后25个字符来获取病毒的文件夹位置,我发现这可以通过我已经测试过的代码来实现,并且运行良好

$string = "the scripts"
$string = $string.Substring(0,$string.Length-1)
$string
示例字符串

C:\Users\jose\Desktop\MUSICA\011_Leyendas\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe C:\Users\jose\Desktop\MUSICA\70'S, 80'S & 90'S.english\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe C:\Users\jose\Desktop\MUSICA\90\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe C:\Users\jose\Desktop\MUSICA\AlbertoBarro\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe C:\Users\jose\Desktop\MUSICA\BACHATA\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe C:\Users\jose\Desktop\MUSICA\CHICO CHE MEZCLADO\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe C:\Users\jose\Desktop\MUSICA\joan sebastian - M. A. Solís\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe C:\Users\jose\Desktop\MUSICA\JUAN GABRIEL 1 DUOS\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe 预期结果

C:\Users\jose\Desktop\MUSICA\011_Leyendas\nlwdvakybapcybqkvcfwr C:\Users\jose\Desktop\MUSICA\011\u Leyendas\nlwdvakybapcybqkvcfwr
GetDirectoryName
是您要查找的内容:

$virusLocations = 'C:\Users\jose\Desktop\MUSICA\011_Leyendas\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe',
'C:\Users\jose\Desktop\MUSICA\70''S, 80''S & 90''S.english\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe',
'C:\Users\jose\Desktop\MUSICA\90\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe',
'C:\Users\jose\Desktop\MUSICA\AlbertoBarro\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe',
'C:\Users\jose\Desktop\MUSICA\BACHATA\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe',
'C:\Users\jose\Desktop\MUSICA\CHICO CHE MEZCLADO\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe',
'C:\Users\jose\Desktop\MUSICA\joan sebastian - M. A. Solís\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe',
'C:\Users\jose\Desktop\MUSICA\JUAN GABRIEL 1 DUOS\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe'

$virusLocations | % {
    [System.IO.Path]::GetDirectoryName($_)
}

正如@JohnLBevan的评论中所述,您可以使用带有
-Parent
开关的
分割路径
命令:

MWE 输出
这是你想要的吗$viruslocation-split'(?=[a-z]:)'或($file-split'(?=[a-z]:))|如果您只需要路径,请使用分割路径的提示帮助解决($i=1;$i-lt$viruslocation.Count;$i++){$tem=$viruslocation[$i]|分割路径}的问题
splitpath-Path$\Parent
将返回给定文件路径的父目录。如果要查找具有给定名称的所有文件,请使用
Get PSDrive-PSProvider FileSystem |%Root | Get ChildItem-Recurse-Filter'nlwdvakybapcybqkvcfwr.exe'|%FullName | Split Path-Parent
(在运行它的计算机上的所有驱动器的所有子文件夹中循环/返回包含给定文件名的任何目录的路径。
$virusLocations = 'C:\Users\jose\Desktop\MUSICA\011_Leyendas\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe',
'C:\Users\jose\Desktop\MUSICA\70''S, 80''S & 90''S.english\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe',
'C:\Users\jose\Desktop\MUSICA\90\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe',
'C:\Users\jose\Desktop\MUSICA\AlbertoBarro\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe',
'C:\Users\jose\Desktop\MUSICA\BACHATA\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe',
'C:\Users\jose\Desktop\MUSICA\CHICO CHE MEZCLADO\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe',
'C:\Users\jose\Desktop\MUSICA\joan sebastian - M. A. Solís\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe',
'C:\Users\jose\Desktop\MUSICA\JUAN GABRIEL 1 DUOS\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe'

$virusLocations | % {
    [System.IO.Path]::GetDirectoryName($_)
}
$VirusLocations = @(
  'C:\Users\jose\Desktop\MUSICA\011_Leyendas\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe',
  'C:\Users\jose\Desktop\MUSICA\70''S, 80''S & 90''S.english\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe',
  'C:\Users\jose\Desktop\MUSICA\90\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe',
  'C:\Users\jose\Desktop\MUSICA\AlbertoBarro\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe',
  'C:\Users\jose\Desktop\MUSICA\BACHATA\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe',
  'C:\Users\jose\Desktop\MUSICA\CHICO CHE MEZCLADO\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe',
  'C:\Users\jose\Desktop\MUSICA\joan sebastian - M. A. Solís\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe',
  'C:\Users\jose\Desktop\MUSICA\JUAN GABRIEL 1 DUOS\nlwdvakybapcybqkvcfwr\nlwdvakybapcybqkvcfwr.exe'
)

foreach ($Virus in $VirusLocations) {
    Split-Path -Path $Virus -Parent
}
C:\Users\jose\Desktop\MUSICA\011_Leyendas\nlwdvakybapcybqkvcfwr
C:\Users\jose\Desktop\MUSICA\70'S, 80'S & 90'S.english\nlwdvakybapcybqkvcfwr
C:\Users\jose\Desktop\MUSICA\90\nlwdvakybapcybqkvcfwr
C:\Users\jose\Desktop\MUSICA\AlbertoBarro\nlwdvakybapcybqkvcfwr
C:\Users\jose\Desktop\MUSICA\BACHATA\nlwdvakybapcybqkvcfwr
C:\Users\jose\Desktop\MUSICA\CHICO CHE MEZCLADO\nlwdvakybapcybqkvcfwr
C:\Users\jose\Desktop\MUSICA\joan sebastian - M. A. SolA-s\nlwdvakybapcybqkvcfwr
C:\Users\jose\Desktop\MUSICA\JUAN GABRIEL 1 DUOS\nlwdvakybapcybqkvcfwr