我有一个运行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("\/","_")
答案 0 :(得分:1)
这里的问题是斜线不。不是你想象的那样。 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("/","_")
。
答案 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("/","_")
处理领先_现在