标题: [问题求助] [已解决]PowerShell如何根据是否存在指定文件并调用相应程序? [打印本页]
作者: awk 时间: 2013-6-30 18:52 标题: [已解决]PowerShell如何根据是否存在指定文件并调用相应程序?
本帖最后由 awk 于 2013-7-7 19:16 编辑
判断当前用户的%userprofile%目录(比如C:\Documents and Settings\用户名\)下面有没有.log日志文件。
如果有,执行C:\Program Files (x86)\下面的QQ.exe
如果没有,执行C:\Program Files (x86)\下面的CS.exe
作者: PowerShell 时间: 2013-6-30 19:42
$要测试的路径 = $env:USERPROFILE + '\.log'
if (test-path $要测试的路径)
{
start-process "C:\Program Files (x86)\QQ.exe"
}
else
{
start-process "C:\Program Files (x86)\cs.exe"
}
大致上是这样
作者: awk 时间: 2013-6-30 19:58
回复 2# PowerShell
log文件名是不确定的,可能是a.log、b.log、c.log等
作者: PowerShell 时间: 2013-6-30 21:48
本帖最后由 PowerShell 于 2013-6-30 21:50 编辑
a.log、b.log、c.log等 ----------- 只有一个字符的,可以用通配符【?】 两个任意字符的可以用【??】 任意个字符的可以用通配符 【*】 这跟bat原理相同。
$要测试的路径 = $env:USERPROFILE + '\?.log'
即可
另外,问问题,要阐述清楚明白,最好一次说清。
作者: lxzzr 时间: 2013-6-30 23:26
test-path c:\*.log
作者: awk 时间: 2013-7-1 20:38
回复 4# PowerShell
我把这个代码保存为test.ps1- $TEST_PATH = $env:USERPROFILE + '\*.log'
- if (test-path $TEST_PATH)
- {
- start-process "C:\Program Files (x86)\a.txt"
- }
- else
- {
- start-process "C:\Program Files (x86)\b.txt"
- }
复制代码
在cmd窗口里面执行test.ps1
发现记事本打开了test.ps1,而不是a.txt或者b.txt,如何解决?
作者: lxzzr 时间: 2013-7-1 21:40
回复 6# awk
powershell -file c:\test.ps1
作者: awk 时间: 2013-7-7 18:35
回复 7# lxzzr
我安装这个方式执行的时候报错信息如下:- File E:\Test\test.ps1 cannot be loaded because the execution of scripts is
- disabled on this system. Please see "get-help about_signing" for more details.
- + CategoryInfo : NotSpecified: (:) [], ParentContainsErrorRecordE
- xception
- + FullyQualifiedErrorId : RuntimeException
复制代码
请问如何解决?
作者: lxzzr 时间: 2013-7-7 18:56
回复 8# awk
这个涉及到PS脚本的执行策略,你可以自行百度下。
以管理员运行PowerShell,输入:set-executionpolicy unrestricted,Y,确定
作者: awk 时间: 2013-7-7 19:16
回复 9# lxzzr
可以了。多谢!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |