Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.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 如何进行字符串拆分_Powershell - Fatal编程技术网

Powershell 如何进行字符串拆分

Powershell 如何进行字符串拆分,powershell,Powershell,我怎样才能分开一根线 我想把C:\RoamingFiles\D\file.txt改为D:\file.txt 我不知道该怎么做,因为split不会像我想的那样过滤掉C:\RoamingFiles\。我有点困惑,你到底想在这里做什么-split。好像 $myString -replace '^C:\\RoamingFiles\\([^\\]+)\\', '$1:\' 对你在那里做的事情会更好。这实际上是用下面的驱动器号替换路径组件C:\RoamingFiles\。但是,由于您只给出了一个示例,所以

我怎样才能分开一根线

我想把
C:\RoamingFiles\D\file.txt
改为
D:\file.txt


我不知道该怎么做,因为split不会像我想的那样过滤掉
C:\RoamingFiles\

我有点困惑,你到底想在这里做什么
-split
。好像

$myString -replace '^C:\\RoamingFiles\\([^\\]+)\\', '$1:\'

对你在那里做的事情会更好。这实际上是用下面的驱动器号替换路径组件
C:\RoamingFiles\
。但是,由于您只给出了一个示例,所以这几乎都是猜测。

我有点困惑,您到底想在这里执行
-split
什么操作。好像

$myString -replace '^C:\\RoamingFiles\\([^\\]+)\\', '$1:\'

对你在那里做的事情会更好。这实际上是用下面的驱动器号替换路径组件
C:\RoamingFiles\
。但这完全是猜测,因为您只给出了一个示例。

尝试过使用[System.IO.Path]

$name = "C:\RoamingFiles\file.txt"
$shortname =  [System.IO.Path]::GetFileName($name)
$newname =  [System.IO.Path]::Combine("D:\", $shortname)
echo $newname

是否尝试使用[System.IO.Path]进行此操作

$name = "C:\RoamingFiles\file.txt"
$shortname =  [System.IO.Path]::GetFileName($name)
$newname =  [System.IO.Path]::Combine("D:\", $shortname)
echo $newname

这应该可以正常工作(包括子文件夹):


这应该可以正常工作(包括子文件夹):


此正则表达式无法处理8个字母的路径。(例如c:\PROGRA~1)。你能修好密码吗?谢谢。所以它并不总是在C:\RoamingFiles\?这就是一个例子。我的实际路径是$env:Temp\lc此正则表达式无法处理8个字母的路径。(例如c:\PROGRA~1)。你能修好密码吗?谢谢。所以它并不总是在C:\RoamingFiles\?这就是一个例子。我的实际路径是$env:Temp\LCits不总是D。该驱动器是C:\RoamingFiles中的第一个目录。它不总是D。该驱动器是C:\RoamingFiles中的第一个目录