3

我想知道是否有一种方法可以从 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
}
4

4 回答 4

2

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

Set-ExecutionPolicty RemoteSigned -Scope LocalMachine

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

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
    }
于 2013-07-10T03:33:22.130 回答
1

Fortunately for what you are trying to do this is pretty easy to do with a CMD script and you won;t have to muck with the execution policy:

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

If you want your powershell version to work you must chenge the execution policy as you've noted. But without admin access, you'll have to limit the scope to just yourself, like this:

set-executionpolicy -scope CurrentUser -ExecutionPolicy RemoteSigned    
于 2013-07-10T01:53:57.140 回答
1

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

@echo off
for /F "delims=" %%a in ('type "C:\Users\usermgx\Desktop\folderDir.txt" ') DO (
    mkdir "C:\Users\usermgx\Desktop\Dir\%%a"
)
于 2013-07-10T02:29:29.450 回答
0

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

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

于 2013-07-10T01:48:27.223 回答