Powershell-将带有空格的$ _。FullName传递给批处理文件

时间:2018-03-20 17:50:21

标签: powershell

我希望将目录完整路径传递给包含所有空格和特殊字符的测试批处理脚本,并在批处理文件中读取它。 问题是目录路径包含空格和分号(名称后跟时间戳,如" abcdefg yyyy-mm-dd hh; mm; ss") 使用下面的powershell脚本,我在特定路径中搜索具有给定模式的目录,然后将其名称传递给批处理文件。

test.ps1代码:

Param([string]$path, [string]$searchStr)
$filenameregex = "^$($searchStr)\s\d{4}-\d{2}-\d{2}" 
get-childitem -Path $path -Directory |where-object{$_.Name -match $filenameregex} | Sort CreationTime -desc | Select -Skip 4 | ForEach-Object {$A=start-process -FilePath testBacth.bat -ArgumentList $_.FullName -Wait -passthru;$A.exitcode}

bacth只是将参数写入文件。

testbatch.bat代码:

ECHO%~1> out.txt

当我用

运行脚本时
test.ps1 -path \\nosrvfnas0001\bak\nosrvfdati0001\ -str Shared

这是我得到的输出:

\\nosrvfnas0001\bak\nosrvfdati0001\Shared 
\\nosrvfnas0001\bak\nosrvfdati0001\Shared 
\\nosrvfnas0001\bak\nosrvfdati0001\Shared 

时间戳部分缺失!!!

我认为这是由于fullname属性中的空格,但idon不知道如何将整个fullname传递给.bat文件。

0 个答案:

没有答案