13

PowerShell 2.0 スクリプトの変数に絶対パスがあります。拡張子を取り除きたいが、フル パスとファイル名はそのままにしておく。それを行う最も簡単な方法は?

したがってC:\Temp\MyFolder\mytextfile.fake.ext.txt、変数が呼び出された場合、次のように言います$file

帰りたい

C:\Temp\MyFolder\mytextfile.fake.ext

4

5 に答える 5

25

タイプの場合[string]

 $file.Substring(0, $file.LastIndexOf('.'))

タイプの場合[system.io.fileinfo]

join-path $File.DirectoryName  $file.BaseName

またはあなたはそれをキャストすることができます:

join-path ([system.io.fileinfo]$File).DirectoryName  ([system.io.fileinfo]$file).BaseName
于 2013-02-08T10:37:23.457 に答える
6
# the path
$file = 'C:\Temp\MyFolder\mytextfile.fake.ext.txt'

# using regular expression
$file -replace '\.[^.\\/]+$'

# or using System.IO.Path (too verbose but useful to know)
Join-Path ([System.IO.Path]::GetDirectoryName($file)) ([System.IO.Path]::GetFileNameWithoutExtension($file))
于 2013-02-08T10:40:12.300 に答える