【问题标题】:Check to see if a directory exists if not do something检查目录是否存在,如果不做某事
【发布时间】:2019-08-28 03:36:41
【问题描述】:

我对 powershell 很陌生,我想这个问题听起来很基础。但我希望我的代码检查用户的应用数据中是否有文件。如果脚本找不到它。该脚本将启动一个进程。

我尝试过 wmi 方法,但我觉得有一种更快更简单的几乎一条线的方法来做到这一点,我想不出

$app = Test-Path C:\Users\bobsaget\AppData\Local\Apps\2.0
 if($app = "False"){ Start-Process 'an executable' "/s"}

它改变 $app 为假,我看到它发生在哪里我只是不完全理解我的 IF 语句做错了什么。

【问题讨论】:

    标签: powershell


    【解决方案1】:
    1. PowerShell 中的= 运算符分配一个值。作为比较,您需要-eq,而不是=

    2. 1234563 $false)。
    3. 您通常不需要Start-Process 来调用程序。只需使用程序的命令行。如果可执行文件的名称或其路径包含空格,请在其前面加上 &(调用)运算符。

    4. 如果您以后不打算使用 $app 变量,您实际上并不需要它。你可以这么写:

      if ( Test-Path "C:\Users\bobsaget\AppData\Local\Apps\2.0" ) {
        & "C:\Path\my program.exe" /s
      }
      

    【讨论】:

      【解决方案2】:

      A better way to check if a path exists or not in PowerShell

      如果您查看上面的文章,有几种方法可以做到这一点。 检查文件是否存在然后执行代码的最基本方法是:

      if (Test-Path $path){
         do stuff 
      }
      

      或者如果你希望它在路径不存在时执行一些代码:

      if (!(Test-Path $path)){
         do stuff
      }
      

      【讨论】:

        猜你喜欢
        • 2015-05-06
        • 1970-01-01
        • 2011-05-12
        • 2023-03-18
        • 2015-10-05
        • 2012-09-12
        相关资源
        最近更新 更多