首页 文章

New-Item在大约10%的时间内创建文件而不是目录

提问于
浏览
1

我有一个PowerShell脚本,我已经遇到了几个月的问题 . 该脚本计算tif文件的文件夹中的页数,然后将该文件夹分成每个约50页的子文件夹 . 在我的测试环境中(安装与 生产环境 相同)它运行了超过1000个tif文件的测试基础,没有一个错误 . 在我们将其提升到 生产环境 环境之后,我们开始遇到脚本崩溃,其中以下代码将创建没有扩展名的文件而不是创建文件夹,然后将无法再处理文件 .

if(!(Test-Path $processingDir))
      {
         New-Item $processingDir -ItemType directory
         $FolderCount = $FolderCount + 1
      }

我还有其他几个地方使用New-Item <> -ItemType Directory命令,这些命令在99%的时间内都可以使用,但有时他们也会创建一个文件而不是文件夹 .

此脚本按计划每五分钟运行一次,因此每天大约需要4-5次,我们必须先删除它创建的文件,然后脚本才能再次成功完成 .

我在文件名中也有大量的括号问题,并且在脚本输出错误时会发出powershell错误,但我的理解是没有已知的修复方法 . 理想情况下,我喜欢用另一种不那么挑剔的语言重新编程这个脚本,但没有时间带宽 .

我在所有系统上都安装了Powershell 2.0 .

3 回答

  • 0

    我建议如下 . 希望在$ processDir周围加上引号将修复错误,但调试信息可能会有所帮助 .

    if(!(Test-Path "$processingDir"))
      {
         New-Item "$processingDir" -ItemType directory
         if (!(Test-path "$processingDir") -or !(ls "$processingDir").PSIsContainer) {
           # Something went wrong. These error messages will go to the console screen,
           # but you could write them to a log file if you have one
           write-host ("!"*35) "  ERROR  " ("!"*35)
           write-host "ProcessingDir = '$processDir' (check for special chars in dir name)"
           write-host "Displaying ""DIR $processingDir"" (is there a file with this name?)"
           ls "$processDir"
           write-host ("!"*35) " END ERROR " ("!"*35)
         }
         $FolderCount = $FolderCount + 1
      }
    
  • 0

    不确定我的理解是否正确:脚本在客户端上运行 . 客户端运行脚本并在服务器上执行所有文件/文件夹处理(因为我看到你刚刚提到“服务器名称”) . 因此,尽管您有多个(或许多)客户端运行此脚本,但文件/文件夹处理的位置仍在一台服务器上 .

    如果答案是"yes",那么您可能想在遇到问题的服务器上尝试 chkdsk [hard drive letter] /f . 由于它是一台服务器,因此尽管 chkdsk /f 是安全的,但确保您拥有该卷数据的良好备份副本 - 它会检查并修复磁盘上的不一致性 .

    这个答案基于这篇文章:http://answers.yahoo.com/question/index?qid=20070519001528AApeRx6

  • 1

    因此,在经过大量的系统故障排除和错误搜索之后,我发现了什么导致了这个问题 . 我碰巧在恰当的时间看着正确的文件,看到发生了什么 . 还有另一个脚本在我们移动文件的目录上运行,它们将我们正在复制的文件提供给另一个要处理的软件产品 . 发生的事情是第二个脚本是删除文件夹,而Powershell正在将文件移入其中,由于某种原因,Powershell创建了垃圾文件(Leaf) . 解决了这个问题,让我的东西被处理成另一个文件,然后批量移动到第二个文件夹 .

    谢谢大家的答案!

相关问题