首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当变量在文件名中有"/“时,PowerShell out文件无法工作

当变量在文件名中有"/“时,PowerShell out文件无法工作
EN

Stack Overflow用户
提问于 2015-05-11 18:36:28
回答 3查看 1.3K关注 0票数 0

我有一个powershell脚本,它运行GET并将结果保存到文件中。但是,文件名使用的是GET URL中的一个变量,然后是一个正斜杠exist "/“。文件不保存,因为它不喜欢正斜杠。

代码语言:javascript
复制
$hostURL = "my_webserver"
$methType = "GET"
$api4 = "/sasl_logs/debug"
$txt | out-file ".\$api4.txt"

结果是一个名为/sasl_log/调试器logs或/sasl_logs_debug.txt的文件。我试着让替换函数工作,但我肯定做错了什么。

代码语言:javascript
复制
$api4.replace("//","_")
$api4.replace("/","_")
$api4.replace("\/","_")
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-05-11 19:11:28

这里的问题是而不是(斜杠)。不是你想的那样。Windows (和powershell)支持/分隔的路径名(与许多/大多数其他Windows应用程序一样)。

这里的问题是,路径/sasl_logs/debug被视为绝对路径(以斜杠开头),因此被视为C:\sasl_logs\debugOut-File拒绝创建sasl_logs目录,以便将debug文件放在该位置。

创建C:\sasl_logs目录,它应该正确工作。

如果您不想要这个目录(或者根本不想要任何目录),而且$api4值没有按字面顺序设置(所以您不能仅仅更改代码),那么您就需要类似于您尝试的内容。

代码语言:javascript
复制
$api4 = $api4.Substring(1) -replace "/","_"

Substring去掉了领先的/-replace运算符做了替换。当然,您也可以使用$api4.Substring(1).Replace("/","_")

票数 1
EN

Stack Overflow用户

发布于 2015-05-11 19:05:30

从你的帖子和评论听起来,你最终是在问如何成功地替换"/“这个角色.

代码语言:javascript
复制
$api4 = "/sasl_logs/debug"
$api4 = $api4.Replace("/","_")
票数 0
EN

Stack Overflow用户

发布于 2015-05-11 19:18:46

好的,这很好,谢谢Etan Reisner

代码语言:javascript
复制
$txt | out-file ".\$api.txt".Replace("/","_")

创建一个名为

代码语言:javascript
复制
_sasl_logs_debug.txt

现在正在做领导工作

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

https://stackoverflow.com/questions/30175138

复制
相关文章

相似问题

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