2013-07-10 34 views
3

我想知道是否有方法可以在Windows PowerShell或CMD中的TXT文檔中創建多個文件夾?我有一個TXT文件,裏面裝滿了圖紙編號,比如5614-E-1459_SH 1(除了它們的約500個)。由於我工作中的政策,我不會大聲使用第三方軟件,所以我想知道是否有方法從命令提示符或Windows PowerShell執行此操作?我知道mkdir「C:\ temp \ 5614-E-1459_SH 1」將創建我需要的文件夾之一。但是有沒有辦法從TXT中提取文件並將其輸出到文件夾中,而不需要像Text2Folders這樣的第三方軟件?在Windows PowerShell或CMD中從TXT文件創建多個文件夾時遇到問題?

我已經用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 
} 
+0

是的,事實上,使用PowerShell很容易。你有嘗試過什麼嗎? – alroc

+0

@alroc是的我有,我已經得到這麼多:$ Users = Get-Content「C:\ Users \ usermgx \ Desktop \ folderDir.txt」 ForEach($用戶在$ users中) { $ newPath = Join -Path「C:\ Users \ usermgx \ Desktop \ Dir」-childpath $ user New-Item $ newPath -type directory }但是我在執行set-ExecutionPolicy時遇到問題,因爲我沒有管理員寫入工作。有沒有解決這個問題的工作? – MRG123

+0

把它放在原來的文章中。 – alroc

回答

0

「Set-ExecutionPolicy error」的「解決方法」是將執行策略設置爲允許腳本運行。請參閱http://technet.microsoft.com/en-us/library/ee176961.aspx。它的默認設置是最嚴格的,但任何值得他的鹽的管理員都會根據環境的要求將其設置爲更少的限制。

一旦你完成了,你的腳本看起來很穩固。

0

幸運的你正在嘗試做的,這是很容易用CMD腳本做,你贏了; t有與執行策略渣土:

@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  
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" 
) 
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 
    } 
相關問題