【问题标题】:Trouble creating multiple folders from a TXT file in Windows PowerShell or CMD?在 Windows PowerShell 或 CMD 中从 TXT 文件创建多个文件夹时遇到问题?
【发布时间】:2013-07-07 18:33:55
【问题描述】:

我想知道是否有一种方法可以从 Windows PowerShell 或 CMD 中的 TXT 文档创建多个文件夹?我有一个充满图纸编号的 TXT 文件,例如 5614-E-1459_SH 1 (除了他们的大约 500 百个)。由于我的工作政策,我不会大声使用第三方软件,所以我想知道是否有办法从命令提示符或 Windows PowerShell 执行此操作?我知道 mkdir "C:\temp\5614-E-1459_SH 1" 将创建我需要的文件夹之一。但是有没有办法从 TXT 中提取文件并将其输出到文件夹中,而不需要像 Text2Folders 这样的第三方软件?

我已经使用 PowerShell 脚本做到了这一点,但由于我在工作中没有管理员写入(最需要它的地方),我收到了 Set-ExecutionPolicy 错误。有解决办法吗?

$Users = Get-Content "C:\Users\usermgx\Desktop\folderDir.txt"
ForEach ($user in $users)
{
$newPath = Join-Path "C:\Users\usermgx\Desktop\Dir" -childpath $user
New-Item $newPath -type directory
}

【问题讨论】:

  • 是的,实际上使用 PowerShell 很容易。你自己有没有尝试过?
  • @alroc 是的,我已经做到了:$Users = Get-Content "C:\Users\usermgx\Desktop\folderDir.txt" ForEach ($user in $users) { $newPath = Join-Path "C:\Users\usermgx\Desktop\Dir" -childpath $user New-Item $newPath -type directory } 但我在 set-ExecutionPolicy 上遇到问题,因为我没有管理员在工作。有解决此问题的方法吗?
  • 把它放在原帖中。

标签: windows powershell cmd


【解决方案1】:

“`Set-ExecutionPolicy 错误'”的“解决方法”是设置执行策略以允许脚本运行。见http://technet.microsoft.com/en-us/library/ee176961.aspx。默认情况下它设置为最严格,但任何称职的管理员都会根据环境要求将其设置为限制较少的东西。

完成此操作后,您的脚本看起来很可靠。

【讨论】:

    【解决方案2】:

    幸运的是,对于您正在尝试执行的操作,使用 CMD 脚本很容易做到这一点,而且您不必对执行策略感到厌烦:

    @echo off
    for /F %%u in (C:\Users\usermgx\Desktop\folderDir.txt) DO (
        mkdir "C:\Users\usermgx\Desktop\Dir\"%%u
    )
    

    如果您希望您的 powershell 版本正常工作,您必须按照您的说明更改执行策略。但是如果没有管理员访问权限,您将不得不将范围限制为仅限于您自己,如下所示:

    set-executionpolicy -scope CurrentUser -ExecutionPolicy RemoteSigned    
    

    【讨论】:

      【解决方案3】:

      这与@zdan 相同,但在新文件夹名称中处理某些额外功能,如长路径、文件名和空格等。

      @echo off
      for /F "delims=" %%a in ('type "C:\Users\usermgx\Desktop\folderDir.txt" ') DO (
          mkdir "C:\Users\usermgx\Desktop\Dir\%%a"
      )
      

      【讨论】:

        【解决方案4】:

        首先,您需要更新执行策略以便可以运行脚本。您可以通过运行以下命令从管理 PowerShell 提示符永久执行此操作:

        Set-ExecutionPolicty RemoteSigned -Scope LocalMachine
        

        如果您没有管理权限,您可以在调用 powershell.exe 可执行文件时设置执行策略。来自 CMD:

        powershell.exe -ExecutionPolicy RemoteSigned -Command C:\Path\to\your\script.ps1
        

        最后,您可以从 PowerShell ISE 运行脚本。只需打开一个新的无标题文档,输入您的代码,然后按 F5,它将执行脚本窗格中的代码。我不相信这会被执行政策阻止。

        Get-Content "C:\Users\usermgx\Desktop\folderDir.txt" |
            ForEach-Object {
                $dirPath = Join-Path "C:\Users\usermgx\Desktop\Dir" $_ 
                New-Item $dirPath -ItemType Directory
            }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-10-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-01-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多