Powershell在文件服务器上创建文件并在桌面上打开

时间:2017-06-05 18:26:13

标签: powershell

我希望能够在文件服务器上创建文件,然后在创建文件后立即在我的PC上打开该文件。我有以下脚本(编辑以隐藏信心。)

Invoke-Command -ComputerName FileServerComputer -ScriptBlock { 
$NewFile = "test.docx" 
$path = Join-Path E:\foo\bar\'test test'\ $NewFile  
New-Item $path -type file
if (Test-Path $path) {Invoke-Item $path}
} -Credential userName

此脚本成功在文件服务器上创建文件,但不会在任何位置打开文件。我已经尝试删除if语句,这似乎不是问题。 任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

运行你拥有的并假设你在文件夹名称中实际上有单引号,它失败了,因为它将'test test'中的单引号转换为空。因此,如果您在整个路径中添加引号,它将起作用

Invoke-Command -ComputerName FileServerComputer -ScriptBlock { 
$NewFile = "test.docx" 
$path = Join-Path "E:\foo\bar\'test test'\" $NewFile  
New-Item $path -type file
if (Test-Path $path) {Invoke-Item $path}
} -Credential userName

答案 1 :(得分:0)

由于$NewFile变量未用于打开文件,因此不是一个非常优雅的解决方案,但至少脚本会立即创建并打开文件。

Invoke-Command -ComputerName FileServer -ScriptBlock { 
$NewFile = "Test.txt" 
$path = Join-Path E:\folder1\'folder2'\'folder3 with spaces'\ $NewFile  
New-Item $path -type file
} -Credential userName
Invoke-Item \\FileServer\folder1\'folder2'\'folder3 with spaces'\Test.txt

有人可以通过展示如何使用$NewFile变量打开文件来帮助提高此脚本的效率吗?