我有一个powershell脚本,它运行GET并将结果保存到文件中。但是,文件名使用的是GET URL中的一个变量,然后是一个正斜杠exist "/“。文件不保存,因为它不喜欢正斜杠。
$hostURL = "my_webserver"
$methType = "GET"
$api4 = "/sasl_logs/debug"
$txt | out-file ".\$api4.txt"结果是一个名为/sasl_log/调试器logs或/sasl_logs_debug.txt的文件。我试着让替换函数工作,但我肯定做错了什么。
$api4.replace("//","_")
$api4.replace("/","_")
$api4.replace("\/","_")发布于 2015-05-11 19:11:28
这里的问题是而不是(斜杠)。不是你想的那样。Windows (和powershell)支持/分隔的路径名(与许多/大多数其他Windows应用程序一样)。
这里的问题是,路径/sasl_logs/debug被视为绝对路径(以斜杠开头),因此被视为C:\sasl_logs\debug和Out-File拒绝创建sasl_logs目录,以便将debug文件放在该位置。
创建C:\sasl_logs目录,它应该正确工作。
如果您不想要这个目录(或者根本不想要任何目录),而且$api4值没有按字面顺序设置(所以您不能仅仅更改代码),那么您就需要类似于您尝试的内容。
$api4 = $api4.Substring(1) -replace "/","_"Substring去掉了领先的/,-replace运算符做了替换。当然,您也可以使用$api4.Substring(1).Replace("/","_")。
发布于 2015-05-11 19:05:30
从你的帖子和评论听起来,你最终是在问如何成功地替换"/“这个角色.
$api4 = "/sasl_logs/debug"
$api4 = $api4.Replace("/","_")发布于 2015-05-11 19:18:46
好的,这很好,谢谢Etan Reisner
$txt | out-file ".\$api.txt".Replace("/","_")创建一个名为
_sasl_logs_debug.txt现在正在做领导工作
https://stackoverflow.com/questions/30175138
复制相似问题