我正在尝试创建一个powershell脚本,它将打开一个HTA文件,但前提是它可以在同一个文件夹中看到一个HTML文件。
我有另一个关于堆栈溢出的问题的脚本,但似乎无法让它发挥作用--有人能指出正确的方向吗?
第一部分确定HTML文件的名称(称为Textbox1.html)。下一部分将文件路径设置为\\network location\Textbox1.html。最后一部分说,如果存在Textbox1.html,则打开\\network location\HTA3.hta。
function GetTextboxExists
{
$TextboxExists = "$Textbox1.html"
return $TextboxExists
}
$filename = TextboxExists
$filePath = "\\*****path to file" + $filename
if ([IO.File]::Exists($filePath) -ne $true)
{
& "\\*****path to file\HTA3.hta"
}发布于 2013-09-12 04:51:54
我不知道为什么要使用一个单独的函数来确定.html文件的名称,但是无论如何,如果您想要根据另一个文件是否存在打开一个文件,那么它非常简单
if (Get-Item -ea SilentlyContinue <path of file to check for>) {
Invoke-Item <path of file to open>
}(假设“打开”是指与文件扩展名相关联的默认操作--这正是使用& "<path>"时所做的工作。)
因此,更具体地说,用代码来描述它:
if (Get-Item -ea SilentlyContinue "\\*****path to file\$Textbox1.html") {
Invoke-Item '\\*****path to file\HTA3.hta'
}if (<boolean> -eq $true) { ...与if (<boolean>) { ...相同,if (<boolean> -ne $true) { ...与if (! <boolean>) { ...相同。因此,使用类(您并不真正需要的)的.NET if语句应该是简单的if ([IO.File]::Exists($filePath) { ...。发布于 2013-09-12 02:53:48
一个简单的方法是查看是否有txt文件。我选择使用int,但布尔值也可以。
$files
Get-Content c:\Users\Athomsfere\Desktop\ | ForEach-Object `
{
if ($_.Extension -eq ".txt")
{
$files++ #Could also do $files = true
}
}
if ($files -gt 0)
{
Write-Host "Open HTA"
#Start HTA code here.
}https://stackoverflow.com/questions/18754285
复制相似问题