无法在Windows PowerShell或CMD中从TXT文件创建多个文件夹?

时间:2013-07-10 00:03:27

标签: windows powershell cmd

我想知道是否有办法在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 个答案:

答案 0 :(得分:2)

首先,您需要更新执行策略,以便运行脚本。您可以通过运行以下命令从管理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
    }

答案 1 :(得分:0)

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

完成后,您的脚本看起来很稳定。

答案 2 :(得分:0)

幸运的是,对于你想要做的事情,使用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 :(得分:0)

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

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