首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >System.IO.File当前目录仅使用TXT文件

System.IO.File当前目录仅使用TXT文件
EN

Stack Overflow用户
提问于 2018-12-13 02:51:46
回答 2查看 146关注 0票数 0

我有一个文件夹位置

代码语言:javascript
复制
Z:\MyFolder\Hours

在这个文件夹中,我有两个文件,一个是PowerShell脚本,一个是文本(txt)文件;我在这个文件夹中只有这两个文件,但是文本文件名每周都会改变。我的PowerShell脚本在下面,可以工作,但我希望它做的是获得存储(或打开)它的当前目录,打开目录中唯一的txt文件,并在其上运行脚本。目前,txt文件的打开和保存是硬编码的,我想在一些名称每天都会更改的文件上使用相同的脚本。我感谢任何人的帮助!

代码语言:javascript
复制
    $r = @{
    "Mon" = "Monday";
    "Tue" = "Tuesday";
    "Wed" = "Wednesday";
    "Thu" = "Thursday";
    "Fri" = "Friday";
    "Sat" = "Saturday";
    "Sun" = "Sunday"
}


$regexes = $r.keys | foreach {[System.Text.RegularExpressions.Regex]::Escape($_)}
$regex = [regex]($regexes -join '|')

$callback = { $r[$args[0].Value] }

$file = [System.IO.File]::ReadAllText("Z:\MyFolder\Hours\file.txt")
$file = $regex.Replace($file, $callback)
Set-Content -Path Z:\MyFolder\Hours\file.txt -Value $file
EN

回答 2

Stack Overflow用户

发布于 2018-12-13 03:07:45

关于如何获取执行脚本的目录,请参阅我的答案。How can I customize powershell when running inside of the VSCode integrated terminal?

要获取目录中的唯一(或第一个) txt文件,请执行以下操作:

代码语言:javascript
复制
$file = Get-ChildItem -Path 'Z:\MyFolder\Hours' -Filter *.txt | Select -First 1 | Select -ExpandProperty FullName

这应该能让你振作起来。

票数 1
EN

Stack Overflow用户

发布于 2018-12-13 04:09:15

我用下面显示的解决方案解决了我的问题:

代码语言:javascript
复制
(Get-Content *.txt) | Foreach-Object {
    $_ -replace 'Mon\b', 'Monday' `
       -replace 'Tue\b', 'Tuesday' `
       -replace 'Wed\b', 'Wednesday' `
       -replace 'Thu\b', 'Thursday' `
       -replace 'Fri\b', 'Friday' `
       -replace 'Sat\b', 'Saturday' `
       -replace 'Sun\b', 'Sunday'
    } | Set-Content *.txt

这允许在当前目录中打开PowerShell脚本,打开该目录中唯一的文本(txt)文件,进行替换,然后保存该文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53749551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档