当变量具有" /"时,PowerShell out-file无法正常工作在文件名中

时间:2015-05-11 18:36:29

标签: powershell

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

$hostURL = "my_webserver"
$methType = "GET"
$api4 = "/sasl_logs/debug"
$txt | out-file ".\$api4.txt"

结果是一个名为/sasl_logs/debug.txt或/sasl_logs_debug.txt的文件。我试图让替换功能正常工作但我必须做错事。

$api4.replace("//","_")
$api4.replace("/","_")
$api4.replace("\/","_")

3 个答案:

答案 0 :(得分:1)

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

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

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

如果你不想要那个目录(或者根本就没有任何目录)和$api4值没有像那样设置(所以你不能只改变代码)那么你想要的东西就像你在尝试的一样。

$api4 = $api4.Substring(1) -replace "/","_"

Substring剥离了前导/-replace运营商进行了替换。当然,您也可以使用$api4.Substring(1).Replace("/","_")

答案 1 :(得分:0)

从您的帖子和您的评论中,听起来就像您最终要求如何成功替换“/”字符...

$api4 = "/sasl_logs/debug"
$api4 = $api4.Replace("/","_")

答案 2 :(得分:0)

好的,这是有效的,谢谢Etan Reisner

    ---------------------------------------------------------------------------
    AttributeError                            Traceback (most recent call last)
    <ipython-input-7-7436ba97d05d> in <module>()
          1 from xlwings import Workbook, Sheet, Range, Chart
    ----> 2 wb = Workbook()
          3 Range('A1').value = 'Foo 1'

    PATH\xlwings\main.pyc in __init__(self, fullname, xl_workbook, app_visible)
        139         else:
        140             # Open Excel if necessary and create a new workbook
    --> 141             self.xl_app, self.xl_workbook = xlplatform.new_workbook()
        142 
        143         self.name = xlplatform.get_workbook_name(self.xl_workbook)

    PATH\xlwings\_xlwindows.pyc in new_workbook()
        103 def new_workbook():
        104     xl_app = _get_latest_app()
    --> 105     xl_workbook = xl_app.Workbooks.Add()
        106     return xl_app, xl_workbook
        107 

   PATH\win32com\client\dynamic.pyc in __getattr__(self, attr)
        520 
        521                 # no where else to look.
    --> 522                 raise AttributeError("%s.%s" % (self._username_, attr))
        523 
        524         def __setattr__(self, attr, value):

    AttributeError: Excel.Application.Workbooks

创建一个名为

的文件
$txt | out-file ".\$api.txt".Replace("/","_")

处理领先​​_现在