簡體   English   中英

如何在csv文件中獲取文件名,但在Powershell中截斷部分名稱?

[英]How to get file names in a csv file but truncate part of the name in powershell?

我從Powershell腳本開始,該腳本在特定日期從文件夾中提取文件名,然后將其提取到新的csv文件中。 我想要的是在每行第5個字符之后修剪字符。 我從這個開始:

Get-ChildItem U:\data\*.* |Where{$_.LastWriteTime -gt (Get-
Date).AddDays(-1)} | Foreach-Object {$_.BaseName} > U:\result.csv 

我的結果是:

  • MMPM_SuperUser_24042017
  • MERHS_SuperUser_24042017
  • BRUSD_SuperUser_24042017
  • HDUJD_SuperUser_24042017
  • BDFOR_SuperUser_24042017

我想從_和每行之后修剪字符。 我希望結果是:

  • MMPM
  • MERHS
  • BRUSD
  • HDUJD
  • BDFOR

將其分配給變量,然后使用split方法使用下划線進行拆分。 拆分完成后,您將把值存儲在數組中。 因此,零索引將給出您的結果。

這應該可以完成您的工作:

$values= Get-ChildItem U:\data\*.* |Where{$_.LastWriteTime -gt (Get-date).AddDays(-1)} 
Foreach ($value in $values)
 {
 $value.BaseName.Split('_')[0] >> U:\result.csv
 }

去做就對了

Get-ChildItem "U:\data\" -file |Where {$_.LastWriteTime -gt (Get-Date).AddDays(-1) -and $_.BaseName -like '*_*' } | 
Foreach-Object {$_.BaseName.Split('_')[0]} > U:\result.csv 

#short version
gci "U:\data\" -file |? {$_.LastWriteTime -gt (Get-Date).AddDays(-1) -and $_.BaseName -like '*_*' } | 
% {$_.BaseName.Split('_')[0]} > U:\result.csv

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM