我希望能够在文件服务器上创建文件,然后在创建文件后立即在我的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语句,这似乎不是问题。 任何人都可以帮助我吗?
答案 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
变量打开文件来帮助提高此脚本的效率吗?