在 PowerShell 中创建临时目录?

2023-12-19

PowerShell 5 引入了New-TemporaryFile cmdlet https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/new-temporaryfile?view=powershell-5.1,这很方便。我怎样才能做同样的事情,但不是创建一个文件而是创建一个目录?有没有New-TemporaryDirectory cmdlet?


我认为可以通过使用 GUID 作为目录名称来完成此操作,而无需循环:

function New-TemporaryDirectory {
    $parent = [System.IO.Path]::GetTempPath()
    [string] $name = [System.Guid]::NewGuid()
    New-Item -ItemType Directory -Path (Join-Path $parent $name)
}

使用 GetRandomFileName 的原始尝试

这是我的港口这个 C# 解决方案 https://stackoverflow.com/a/278457/27581:

function New-TemporaryDirectory {
    $parent = [System.IO.Path]::GetTempPath()
    $name = [System.IO.Path]::GetRandomFileName()
    New-Item -ItemType Directory -Path (Join-Path $parent $name)
}

碰撞可能性分析

有多大可能是这样GetRandomFileName将返回临时文件夹中已存在的名称?

  • 文件名以以下形式返回XXXXXXXX.XXX其中 X 可以是小写字母或数字。
  • 这给了我们 36^11 种组合,按位计算约为 2^56
  • 调用生日悖论 https://en.wikipedia.org/wiki/Birthday_problem,一旦我们到达文件夹中的大约 2^28 个项目(大约 3.6 亿),我们预计会发生冲突
  • NTFS 支持文件夹中大约 2^32 个项目 https://technet.microsoft.com/en-us/library/cc781134%28WS.10%29.aspx#w2k3tr_ntfs_how_dhao,因此可以使用以下方式获得碰撞GetRandomFileName

NewGuid另一方面可以是 2^122 种可能性之一 https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_.28random.29,使得碰撞几乎不可能发生。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 PowerShell 中创建临时目录? 的相关文章

随机推荐

  • 通过 Intent 传递 ArrayList

    我有一个名为 Service 的类 用于使用此构造函数创建 Service 对象 public Service int id String service name String service code this id id this s
  • Smarty:评估存储在 PHP 变量中的模板

    我有一个 php 变量 其中包含 html smarty 代码 x a href link title a 该数据是从数据库中获取的 我想使用 smarty 对其进行评估并将输出放入 php 变量中 将其打印出来或再次将其保存到数据库中 T
  • GOOGLE_APPLICATION_CREDENTIALS 错误

    我正在尝试使用谷歌语音 API 将音频文件转换为文本 但遇到一些文档问题 我已启用语音 API 并创建了一个服务帐户文件 我还激活了服务帐户凭据 然后我编写了以下命令来使用我的服务帐户检索授权令牌 gcloud auth applicati
  • 如何在 React Native 上从 uri 获取图像的高度和宽度?

    因此 我尝试使用React Native提供的Image getSize函数 但是当我尝试在函数外部使用高度和宽度时 它似乎为零 这是我的代码 var theHeight 0 Image getSize url height width g
  • 使用 jquery ajax 调用 jsf 托管 bean 方法(AjaxBehaviorEvent 侦听器处理程序)

    我想知道是否有办法直接使用 jquery ajax 服务器请求来触发 jsf 托管 bean 方法 带有 AjaxBehaviorEvent 类型参数 使用 f ajax 时触发相同的方法 顺便说一下 我是 jsf 开发人员我没有找到关于使
  • 不同回文子串的数量

    给定一个字符串 我知道如何找到回文子串的数量使用 Manacher 算法在线性时间内完成 但现在我需要找到数量独特 独特回文子串 现在 这可能会导致 O n n 2 算法 一个 n 用于查找所有此类子字符串 而 n 2 用于将这些子字符串中
  • SQLite 中的 CEIL 和 FLOOR

    找到最干净的方法是什么ciel and floor中的一个数SQLite 不幸的是 SQLite 只有ROUND 功能 Formulas Ceil cast x as int x gt cast x as int 取x的整数部分 如果小数值
  • FileReader.readAsBinaryString 返回二进制还是基于 ASCII 的字符集?

    简而言之 我想将图像的二进制数据发送到我的处理程序 该处理程序将作为字节数组保存在数据库中 使用读取文件输入的值在我的 Javascript 中 我会得到如下输出 GIF89a 2c 3f Sma c T At X c 8 fj I Q q
  • 如何在 React.js 中修改现有的 PDF?

    我的反应状态数组中几乎没有值通过 props 传递给当前组件 但我不想像下面的代码中当前显示的那样显示 而是想使用文件系统中的 PDF 模板 因此 我的预期结果是能够在给定 x y 坐标的原始 PDF 副本上从状态 文本或图像 绘制给定数据
  • 多行之间的 SQLite SUM()

    我需要一些有关 Android 应用程序中的 SUM 功能的帮助 我有一张如下所示的表 我有需要SUM最后两条记录注释和最后一条带注释记录之间的数量 我需要对第 31 32 行和 33 行的数量求和 它将返回 90 我已经尝试过 SELEC
  • 为什么我不能将匿名类型作为参数传递给函数?

    我试图做类似下面的事情 但它不起作用 为什么 NET 不让我这样做 private void MyFunction var items whatever 从 Visual C 3 0 开始 在方法作用域中声明的变量可以具有隐式类型 var
  • tfs 服务器上身份验证失败

    我有一个非常奇怪的问题git bash在窗户上 当我在 Visual Studio 中工作时 使用存储在 tfs 服务器中的 git 存储库没有问题 我只是分支 承诺并推动 但是当我尝试在我的系统中执行相同的操作 获取 拉动 推送 时git
  • Ionic PWA 部署

    我正在尝试将 Ionic 2 项目的渐进式 Web 应用程序版本部署到 Heroku 但它似乎不起作用 我正在尝试使用 Ionic build browser prod 然后部署 www 文件夹 但我没有收到 Heroku 的任何响应 似乎
  • ClickOnce 认为 Windows 更新 KB5029649 之后有可用更新,即使没有可用更新

    你好 StackOverflow 社区 我在使用 ClickOnce 部署的 VB NET 应用程序时遇到了一个不寻常的问题 尽管没有发布任何最新更新 我们的一些用户仍会被提示更新应用程序 当他们继续进行时 它的行为就像是全新安装一样 会清
  • 在 FormInput 组件下方反应本机元素行

    我正在使用 React Native Elements 中的 FormInput 元素 它似乎在每个 FormInput 组件下方生成一条线 一个比另一个更微弱 表格如下
  • 在纯 NumPy 中重写 for 循环以减少执行时间

    I 最近询问有关尝试优化科学应用程序的 Python 循环的问题 https stackoverflow com questions 2586749 what is the most platform and python version
  • 现场(“点击”)和表演

    我有一个网格 有一列包含 a 带有一些附加信息的锚标记 a
  • 如何在内存中创建文件供用户下载,而不是通过服务器?

    有没有办法在客户端创建一个文本文件并提示用户下载它而无需与服务器进行任何交互 我知道我不能直接写入他们的机器 安全性和所有 但我可以创建文件并提示他们保存它吗 适用于 HTML5 浏览器的简单解决方案 function download f
  • PowerMock 何时新替代方案

    我不想再使用 powermock 了 因为junit5开始模拟静态类 所以我试图摆脱 powermock 方法 如您所知 您可以使用whenNew关键字创建类的实例 Junit5中对于whenNew有什么替代方案吗 这是我的代码的一部分 w
  • 在 PowerShell 中创建临时目录?

    PowerShell 5 引入了New TemporaryFile cmdlet https learn microsoft com en us powershell module microsoft powershell utility