Когда я щелкаю правой кнопкой мыши файл script.ps1
и выбираю "Запускать с PowerShell", открывается окно консоли PS, и по какой-то причине мой сценарий не запускается. Поэтому я получаю сообщение об ошибке, но на самом деле не могу прочитать сообщение, потому что окно закрывается сразу после появления ошибки.
Поэтому я хотел бы открыть новое окно консоли PowerShell, перейти к файлу сценария, запустить его и, надеюсь, на этот раз получить удовольствие от чтения глупого сообщения об ошибке. Так как мне запустить скрипт из окна консоли?
- Версия ОС: Windows 8.0
- PS версия: 3.0
Простой ввод в script.ps1
или предложенный ".\script.ps1"
просто ничего не делает.
Так что я полагаю, что нужно получить какую-то команду? Скрипт действительно прост, он должен создавать новые папки и называть их, читая файл Export.txt
.
$folder="C:\test";
$txtFile="C:\test\Export.txt";
get-content $txtFile | %{
if($_ -match "^(\d+) (\w+)$")
{
mkdir "$folder\$_";
}
}
Заметка! Обратите внимание, что приведенное выше сообщение об ошибке (скриншот) не относится к запуску самого скрипта. Единственный способ запустить сценарий - щелкнуть правой кнопкой мыши файл сценария в Проводнике и выбрать "Запуск с PowerShell", и ошибка, которую я получаю при его запуске, отличается от той, которую вы видите здесь выше.
Обновить! Смотрите мой второй комментарий ниже. Для путей , таких как C:\test\script.ps1
он работает с .\script.ps1
Мне по-прежнему нужна помощь по запуску файла сценария PS, когда путь к файлу сценария включает в себя такие буквы, как Å, Ä и Ö.
Обновление - Е, А и Е ломает PS
Как я уже сказал, у меня, похоже, проблемы с этими персонажами в PS. Вот почему я изначально думал, что я делаю это неправильно. Итак, здесь я приведу два примера, чтобы продемонстрировать это.
Запуск сценария PS без Å, Ä и Ö
Это мой сценарий.
$folder="C:\test";
$txtFile="C:\test\Export.txt";
get-content $txtFile | %{
if($_ -match "^(\d+) (\w+)$")
{
mkdir "$folder\$_";
}
}
Это содержимое того места, где я сейчас его тестирую.
PS C:\test> dir
Directory: C:\test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 2014-02-28 09:12 3648 Export.txt
-a--- 2014-02-28 10:49 162 script.ps1
PS C:\test>
Это я запускаю скрипт из окна консоли PS.
PS C:\test> .\script
Directory: C:\test
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 2014-02-28 10:55 001 Harberget
d---- 2014-02-28 10:55 004 Badstuknappen
d---- 2014-02-28 10:55 005 Aspberget
d---- 2014-02-28 10:55 006 Knipen
d---- 2014-02-28 10:55 011 Juberget
d---- 2014-02-28 10:55 012 Rangen
d---- 2014-02-28 10:55 014 Grasbricka
d---- 2014-02-28 10:55 018 Letafors
d---- 2014-02-28 10:55 020 Rya
d---- 2014-02-28 10:55 022 Bograngen
d---- 2014-02-28 10:55 023 Dalby
d---- 2014-02-28 10:55 029 Transtrand
d---- 2014-02-28 10:55 032 Viggen
d---- 2014-02-28 10:55 033 Nyskoga
d---- 2014-02-28 10:55 044 Vitsand
d---- 2014-02-28 10:55 059 Lekvattnet
d---- 2014-02-28 10:55 064 Gustavsfors
d---- 2014-02-28 10:55 066 Tyfors
d---- 2014-02-28 10:55 067 Mitandersfors
d---- 2014-02-28 10:55 070 Bada
d---- 2014-02-28 10:55 073 Geijersholm
d---- 2014-02-28 10:55 074 Liljendal
d---- 2014-02-28 10:55 077 Bogen
d---- 2014-02-28 10:55 079 Grinnemo
d---- 2014-02-28 10:55 080 Lysvik
d---- 2014-02-28 10:55 082 Uddeholm
d---- 2014-02-28 10:55 085 Vitklinten
d---- 2014-02-28 10:55 086 Gravendal
d---- 2014-02-28 10:55 087 Magnor
d---- 2014-02-28 10:55 089 Bortan
d---- 2014-02-28 10:55 090 Fredros
d---- 2014-02-28 10:55 095 Busken
d---- 2014-02-28 10:55 101 Charlottenberg
d---- 2014-02-28 10:55 102 Allstakan
d---- 2014-02-28 10:55 104 Rotten
d---- 2014-02-28 10:55 105 Sunne
d---- 2014-02-28 10:55 106 Annefors
d---- 2014-02-28 10:55 107 Munkfors
d---- 2014-02-28 10:55 108 Sunnemo
d---- 2014-02-28 10:55 109 Nordmarker
d---- 2014-02-28 10:55 111 Silvergruva
d---- 2014-02-28 10:55 113 Skillingemark
d---- 2014-02-28 10:55 115 Gunnarsskog
d---- 2014-02-28 10:55 116 Mangskog
d---- 2014-02-28 10:55 118 Rottneros
d---- 2014-02-28 10:55 123 Persberget
d---- 2014-02-28 10:55 124 Hellefors
d---- 2014-02-28 10:55 125 Bottnar
d---- 2014-02-28 10:55 128 Ottebol
d---- 2014-02-28 10:55 129 Rackstad
d---- 2014-02-28 10:55 130 Gullesbyn
d---- 2014-02-28 10:55 131 Emtervik
d---- 2014-02-28 10:55 135 Brattfors
d---- 2014-02-28 10:55 136 Filipstad
d---- 2014-02-28 10:55 137 Saxhyttan
d---- 2014-02-28 10:55 138 Orrkullen
d---- 2014-02-28 10:55 142 Arvika
d---- 2014-02-28 10:55 143 Edane
d---- 2014-02-28 10:55 144 Brunsberg
d---- 2014-02-28 10:55 148 Nyed
d---- 2014-02-28 10:55 149 Hedenskog
d---- 2014-02-28 10:55 150 Kroppa
d---- 2014-02-28 10:55 151 Loka
d---- 2014-02-28 10:55 152 Dalen
d---- 2014-02-28 10:55 154 Karlanda
d---- 2014-02-28 10:55 156 Glava
d---- 2014-02-28 10:55 158 Boda
d---- 2014-02-28 10:55 159 Frykerud
d---- 2014-02-28 10:55 160 Frykestad
d---- 2014-02-28 10:55 161 Forshaga
d---- 2014-02-28 10:55 164 Storfors
d---- 2014-02-28 10:55 167 Holmedal
d---- 2014-02-28 10:55 169 Lenungen
d---- 2014-02-28 10:55 172 Vermskog
d---- 2014-02-28 10:55 173 Edsvalla
d---- 2014-02-28 10:55 174 Grava
d---- 2014-02-28 10:55 175 Alster
d---- 2014-02-28 10:55 176 Glumserud
d---- 2014-02-28 10:55 177 Kungskog
d---- 2014-02-28 10:55 178 Lundsberg
d---- 2014-02-28 10:55 180 Mona
d---- 2014-02-28 10:55 181 Foxen
d---- 2014-02-28 10:55 182 Silbodal
d---- 2014-02-28 10:55 183 Sannaneknatten
d---- 2014-02-28 10:55 186 Borgvik
d---- 2014-02-28 10:55 187 Grums
d---- 2014-02-28 10:55 188 Eriksberg
d---- 2014-02-28 10:55 189 Karlstad
d---- 2014-02-28 10:55 193 Alkvettern
d---- 2014-02-28 10:55 194 Trankil
d---- 2014-02-28 10:55 195 Blomskog
d---- 2014-02-28 10:55 196 Sillerud
d---- 2014-02-28 10:55 198 Gillberga
d---- 2014-02-28 10:55 199 Segmon
d---- 2014-02-28 10:55 200 Ed
d---- 2014-02-28 10:55 204 Presterud
d---- 2014-02-28 10:55 205 Kristinehamn
d---- 2014-02-28 10:55 207 Salholmen
d---- 2014-02-28 10:55 208 Gustavsfors
d---- 2014-02-28 10:55 211 Kila
d---- 2014-02-28 10:55 212 Hammar
d---- 2014-02-28 10:55 215 Skallholmen
d---- 2014-02-28 10:55 217 Posseberg
d---- 2014-02-28 10:55 219 Degerfors
d---- 2014-02-28 10:55 220 Torrskog
d---- 2014-02-28 10:55 221 Suled
d---- 2014-02-28 10:55 222 Svanskog
d---- 2014-02-28 10:55 223 Tveta
d---- 2014-02-28 10:55 224 Seffle
d---- 2014-02-28 10:55 226 Kilsbyn
d---- 2014-02-28 10:55 227 Visnum
d---- 2014-02-28 10:55 228 Nysund
d---- 2014-02-28 10:55 233 Rudskoga
d---- 2014-02-28 10:55 234 Grytfors
d---- 2014-02-28 10:55 237 Millesvik
d---- 2014-02-28 10:55 240 Rosenborg
Очевидно, что скрипт работает. Однако он создает только 116 папок из 245 папок, которые он должен создать. Это может быть связано с самим сценарием. Это пропускаемые строки, такие как 002 Långflon
и 003 Källegrafsrös
потому что они содержат буквы Å, Ä и / или Ö. Есть идеи? Но дело в том, что скрипт работает в окне консоли PS, как и ожидалось.
Выполнение одного и того же сценария PS с Å, Ä и Ö
Я намеренно добавил Ä в имя папки. Итак, test
был переименован в täst
. Я обновил файл скрипта этими изменениями, и теперь это мой скрипт.
$folder="C:\täst";
$txtFile="C:\täst\Export.txt";
get-content $txtFile | %{
if($_ -match "^(\d+) (\w+)$")
{
mkdir "$folder\$_";
}
}
В тестовой папке нет папок. Я удалил их, чтобы повторно запустить тест.
PS C:\täst> dir
Directory: C:\täst
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 2014-02-28 09:12 3648 Export.txt
-a--- 2014-02-28 11:04 164 script.ps1
PS C:\täst>
И снова, это я запускаю обновленный файл скрипта.
PS C:\täst> .\script.ps1
get-content : Cannot find path 'C:\täst\Export.txt' because it does not exist.
At C:\täst\script.ps1:4 char:1
+ get-content $txtFile | %{
+ ~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\täst\Export.txt:String) [Get-Content], ItemNotFoun
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand
PS C:\täst>
Не удается найти путь 'C:\ täst \ Export.txt', поскольку он не существует.
Как видите, он пытается найти путь, которого там нет. Точка доказана. Персонажи Å, Ä и Ö ломают PS! Но почему? Что я делаю, что так неправильно? ...