前スレ
PowerShell -Part 6
https://mevius.5ch.net/test/read.cgi/tech/1644744972/
次スレは>>980が立ててね!!
探検
PowerShell -Part 7
1デフォルトの名無しさん
2023/11/29(水) 16:07:49.46ID:0g8RZ7sB175デフォルトの名無しさん
2024/04/09(火) 21:52:45.57ID:yR8KPsJp 用がないなら関わる必要ないんじゃね
OSに標準で入ってる事しかメリット無いんだし
OSに標準で入ってる事しかメリット無いんだし
176デフォルトの名無しさん
2024/04/13(土) 22:49:21.10ID:7ey9vG0h SJISで出力しようとするとエラーで怒られるのはなんでなんですか
仕方がないのでnkf -s --overwriteでしのいでるんですが
うまくいく
>dir | Out-File -Encoding 'utf8' output.txt
どちらもエラーが出る
>dir | Out-File -Encoding 'shift-jif' output.txt
>dir | Out-File -Encoding [System.Text.Encoding]::GetEncoding('shift-jis') output.txt
Out-File : パラメーター 'Encoding の引数を確認できません。引数 "[System.Text.Encoding]::GetEncoding
" は、ValidateSet 属性で指定されたセット "unknown,string,unicode,bigendianunicode,utf8,utf7,
utf32,ascii,default,oem" に属していません。このセットの引数を指定して、コマンドを再度実行してください。
仕方がないのでnkf -s --overwriteでしのいでるんですが
うまくいく
>dir | Out-File -Encoding 'utf8' output.txt
どちらもエラーが出る
>dir | Out-File -Encoding 'shift-jif' output.txt
>dir | Out-File -Encoding [System.Text.Encoding]::GetEncoding('shift-jis') output.txt
Out-File : パラメーター 'Encoding の引数を確認できません。引数 "[System.Text.Encoding]::GetEncoding
" は、ValidateSet 属性で指定されたセット "unknown,string,unicode,bigendianunicode,utf8,utf7,
utf32,ascii,default,oem" に属していません。このセットの引数を指定して、コマンドを再度実行してください。
177デフォルトの名無しさん
2024/04/13(土) 22:51:19.83ID:7ey9vG0h shift-jifになってますがjisでもちゃんとエラーになります
178デフォルトの名無しさん
2024/04/13(土) 22:52:54.00ID:OrtqC7Lq コマンドレットの引数と.NETのそれを混同してるのでは
-Encoding Defaultでしょ
-Encoding Defaultでしょ
179デフォルトの名無しさん
2024/04/14(日) 08:27:07.05ID:JqEwLIX+ なんでなんですかと言われても自分で貼ったエラーメッセージに書いてある通りでしょ
https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.utility/out-file?view=powershell-5.1#-encoding
どうしてもShift-JISと書きたいならPowerShell6.2以降をご利用ください
https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.utility/out-file?view=powershell-7.4#-encoding
https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.utility/out-file?view=powershell-5.1#-encoding
どうしてもShift-JISと書きたいならPowerShell6.2以降をご利用ください
https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.utility/out-file?view=powershell-7.4#-encoding
180デフォルトの名無しさん
2024/04/15(月) 14:56:57.87ID:PE3M1YJ/ よく知らんけど、UTF8もSHIFT-JISもMS932
ASCIIも、全部半角英数文字なら、
完全に互換性あるよな❓
BOM付UTF8はダメだろうが
ていうか、改行はLF CR LF+CR CR+LF
のどれが正しいの❓
ASCIIも、全部半角英数文字なら、
完全に互換性あるよな❓
BOM付UTF8はダメだろうが
ていうか、改行はLF CR LF+CR CR+LF
のどれが正しいの❓
181デフォルトの名無しさん
2024/04/15(月) 15:02:21.24ID:PE3M1YJ/ ていうか、拡張子mp3は音楽で音なのに、
でもてか、拡張子mp4は動画で映像だし、ま、音声も含まれてるけど
もしかして、拡張子mp5は匂いとかになるのかな❓ なんて訳ないよね
でもてか、拡張子mp4は動画で映像だし、ま、音声も含まれてるけど
もしかして、拡張子mp5は匂いとかになるのかな❓ なんて訳ないよね
182デフォルトの名無しさん
2024/04/15(月) 15:11:13.01ID:t9UnzSYj mp3: MPEG-1 Audio Layer-3
mp4: MPEG-4 Part 14
mp4: MPEG-4 Part 14
183デフォルトの名無しさん
2024/04/15(月) 22:02:24.55ID:uMyBIzHs >>180
0x5Cと0x7Eが違うだろ
0x5CはASCIIやUTF-8だと逆スラッシュだけどShift-JISでは円記号
0x7EはASCIIやUTF-8ではチルダでShift-JISだとオーバーライン
0x5Cと0x7Eが違うだろ
0x5CはASCIIやUTF-8だと逆スラッシュだけどShift-JISでは円記号
0x7EはASCIIやUTF-8ではチルダでShift-JISだとオーバーライン
184デフォルトの名無しさん
2024/04/29(月) 03:38:58.05ID:xgq67JZI 糞言語晒しハゲ
185デフォルトの名無しさん
2024/04/29(月) 21:21:17.91ID:+v7UeRZb 確かにPowerShellには糞な所はあるが
UNIXシェルはもっと糞だからなぁ
UNIXシェルはもっと糞だからなぁ
186デフォルトの名無しさん
2024/04/30(火) 00:48:39.65ID:DiJVRdjR bashはもっと高級言語っぽく書かせてくれ
187デフォルトの名無しさん
2024/04/30(火) 19:49:07.28ID:C0uaYXPq プログラムスレ自体が
スレ立ての荒らしにあってる?
スレ立ての荒らしにあってる?
188デフォルトの名無しさん
2024/05/12(日) 19:06:56.30ID:vKcD+EjR 入力された値(小数点以下の桁数は不明)をそのままの値でコンソールに表示させる方法ありますでしょうか?
例
入力値 $nyuryoku = 0.0000001
出力 0.0000001
現状
1E-07
例
入力値 $nyuryoku = 0.0000001
出力 0.0000001
現状
1E-07
189デフォルトの名無しさん
2024/05/12(日) 19:07:09.73ID:vKcD+EjR 入力された値(小数点以下の桁数は不明)をそのままの値でコンソールに表示させる方法ありますでしょうか?
例
入力値 $nyuryoku = 0.0000001
出力 0.0000001
現状
1E-07
例
入力値 $nyuryoku = 0.0000001
出力 0.0000001
現状
1E-07
190デフォルトの名無しさん
2024/05/12(日) 19:36:08.58ID:09MtL+BO 最初から文字列にしとけばOK
191デフォルトの名無しさん
2024/05/12(日) 20:58:46.50ID:XuEaHJPQ そうだね。逆にE表記の入力も受けるならそっちの対応も必要になる
$nyuryoku = "0.0000001"
[double]$nyuryoku_d = 0
if ([Double]::TryParse($nyuryoku, [ref]$nyuryoku_d)) { # 入力文字列をdouble値に変換できるか確認
$dotpos = $nyuryoku_s.IndexOf(".")
if ($dotpos -ge 0) { # ドット表記
$nyuryoku_d += 0.0000001
$nyuryoku_d.ToString("N" + $nyuryoku_s.substring($dotpos + 1).length) | Write-Host #double値を計算して同桁出力する場合
}
}
$nyuryoku = "0.0000001"
[double]$nyuryoku_d = 0
if ([Double]::TryParse($nyuryoku, [ref]$nyuryoku_d)) { # 入力文字列をdouble値に変換できるか確認
$dotpos = $nyuryoku_s.IndexOf(".")
if ($dotpos -ge 0) { # ドット表記
$nyuryoku_d += 0.0000001
$nyuryoku_d.ToString("N" + $nyuryoku_s.substring($dotpos + 1).length) | Write-Host #double値を計算して同桁出力する場合
}
}
192デフォルトの名無しさん
2024/05/12(日) 21:52:36.80ID:i2A3IV7D "{0:f7}" -f $nyuryoku
193デフォルトの名無しさん
2024/05/13(月) 11:39:01.69ID:/Hf+00qw .NetのBigDecimal型を使えば演算も有効数字も期待通りにコントロールできて望むものに合致するかもしれない
194デフォルトの名無しさん
2024/05/14(火) 06:07:17.63ID:91RzY7pD >>0190
確かにそうですね
>>0191
ありがとうございます。
>>0192
小数点以下桁数が計算できれば行けそうです
>>0193
ありがとうございます。試してみます
確かにそうですね
>>0191
ありがとうございます。
>>0192
小数点以下桁数が計算できれば行けそうです
>>0193
ありがとうございます。試してみます
195デフォルトの名無しさん
2024/05/15(水) 12:16:52.10ID:NKO3JxQw [System.Covert]::ToDecimal($nyuryoku)
196デフォルトの名無しさん
2024/05/15(水) 21:14:15.32ID:dKr+esCZ [decimal]$nyuryoku
197デフォルトの名無しさん
2024/05/15(水) 23:59:01.94ID:thm7xdMe > $x = "1.00"
> [decimal]$x
1
> [decimal]$y = "1.00"
> $y
1
簡潔でいいなと思ったけど v7.4.2 ではダメだったわ
v5 なら通る
なんでや
> [decimal]::Parse("1.00")
1.00
これならどっちもいける
> [decimal]$x
1
> [decimal]$y = "1.00"
> $y
1
簡潔でいいなと思ったけど v7.4.2 ではダメだったわ
v5 なら通る
なんでや
> [decimal]::Parse("1.00")
1.00
これならどっちもいける
198デフォルトの名無しさん
2024/05/19(日) 09:37:50.88ID:CqmosUS1 1.00.ToString("0.00")
199デフォルトの名無しさん
2024/05/28(火) 21:30:03.57ID:3YD/oRc3 https://www.itmedia.co.jp/news/articles/2405/28/news172.html
こういうのがあるからPowerShellはスクリプト実行禁止がデフォルトになっている
こういうのがあるからPowerShellはスクリプト実行禁止がデフォルトになっている
200デフォルトの名無しさん
2024/05/29(水) 13:49:53.60ID:uKjwQH9U いやいやいや…ちょっと調べればPowerShellを禁止設定のまま実行なんて簡単なんですけお^^
俺はバッチファイル経由で実行するようにしてる
同じフォルダ内のps1ファイルを全て羅列して、どれを実行しますか?みたいな感じのバッチファイル
同じフォルダ内のps1ファイルを全て羅列して、どれを実行しますか?みたいな感じのバッチファイル
202デフォルトの名無しさん
2024/05/29(水) 21:41:38.25ID:02Fq4mGE それ意味あんの
204デフォルトの名無しさん
2024/05/30(木) 00:25:29.21ID:U4JaIgka205デフォルトの名無しさん
2024/05/30(木) 09:38:23.19ID:BwsQkw0g >ウインドウ非表示実行
conhost.exe --headless powershell.exe -file foo.ps1
では駄目?
conhost.exe --headless powershell.exe -file foo.ps1
では駄目?
207デフォルトの名無しさん
2024/05/30(木) 12:56:45.30ID:T4GqjJ/d vbs廃止は神国だわw
208デフォルトの名無しさん
2024/05/30(木) 17:48:39.42ID:U4JaIgka209デフォルトの名無しさん
2024/05/30(木) 22:14:09.65ID:5L9b56Kn https://github.com/microsoft/terminal/issues/17178
conhost.exe --headlessは終了コードを得られない致命的なバグがあるらしいな
Hiddenで起動する適当なexe作った方が早そう
conhost.exe --headlessは終了コードを得られない致命的なバグがあるらしいな
Hiddenで起動する適当なexe作った方が早そう
210デフォルトの名無しさん
2024/06/01(土) 09:49:39.74ID:GcLNDseM >>154
なんじゃこりゃ、どんだけエアプが書いてんだ?
そもそもrunas.exeとsudoの意味論はユーザ切り替えで同一だろ
権限の昇格の概念の無いOS用のsudoと意味論が異なる事を示す為にせめてsudo以外の名前を使えよ
以下win/pwsh環境での突っ込み
>runasはパスワードの入力が必要になる
saps に-cred $me渡せ
>別ウィンドウでターミナルが起動する
-nonew渡せ
>別ターミナル再度コマンドを実行する必要
それはsu相当の動作であってsaps pwshで代替できる
全部やりたいならsaps $prog -runas -cred $me -nonewだろ?
win上のpwsh環境ではsaps上で直交するオプションとして設計された4機能が全部斜交した邪悪の極みみたいなコマンドと化してるぞ
ついでに言うとrunas.exeも若干邪悪…
テストはしてないからなんか俺もエアプしてたら突っ込んでね?
なんじゃこりゃ、どんだけエアプが書いてんだ?
そもそもrunas.exeとsudoの意味論はユーザ切り替えで同一だろ
権限の昇格の概念の無いOS用のsudoと意味論が異なる事を示す為にせめてsudo以外の名前を使えよ
以下win/pwsh環境での突っ込み
>runasはパスワードの入力が必要になる
saps に-cred $me渡せ
>別ウィンドウでターミナルが起動する
-nonew渡せ
>別ターミナル再度コマンドを実行する必要
それはsu相当の動作であってsaps pwshで代替できる
全部やりたいならsaps $prog -runas -cred $me -nonewだろ?
win上のpwsh環境ではsaps上で直交するオプションとして設計された4機能が全部斜交した邪悪の極みみたいなコマンドと化してるぞ
ついでに言うとrunas.exeも若干邪悪…
テストはしてないからなんか俺もエアプしてたら突っ込んでね?
211デフォルトの名無しさん
2024/06/01(土) 10:15:49.38ID:rqyUs55u $progと-args @argsをfunction sudoに包んで渡せばとりあえず望みの挙動を得られるはず
212デフォルトの名無しさん
2024/06/01(土) 22:09:53.18ID:olGfUeGO 俺の環境だと-NoNewWindowと-Credential両方指定すると新しいウインドウが開いちゃうんだが
213デフォルトの名無しさん
2024/06/04(火) 22:16:09.49ID:GNPHSdGp >>208
https://www.keyence.co.jp/ss/general/iot-glossary/headless.jsp
ヘッドレスとは、組み込み機器やサーバなど、本来対面で人が操作するためのものではない(または、その必要がない)システムで見られる運用形態のひとつです。コンピュータの場合、キーボード、マウス、タッチパネルなどの入出力機器を接続しない状態で運用すること、また、その状態で運用を行う機器などがあります。
https://www.keyence.co.jp/ss/general/iot-glossary/headless.jsp
ヘッドレスとは、組み込み機器やサーバなど、本来対面で人が操作するためのものではない(または、その必要がない)システムで見られる運用形態のひとつです。コンピュータの場合、キーボード、マウス、タッチパネルなどの入出力機器を接続しない状態で運用すること、また、その状態で運用を行う機器などがあります。
214デフォルトの名無しさん
2024/06/05(水) 00:12:03.26ID:nLwXXU6Y https://eow.alc.co.jp/search?q=headless
例文、怖えぇ〜
【headless】
1. 頭部のない、首を切られた
・ I saw a headless dog lying beside the road on my way to school. :
学校へ行く途中、道端に首のない犬が転がっているのを見た。
2. 指導者がいない
・ The terrorist group is a headless organization. :
そのテロリスト集団は指導者がいない組織である。
3. ・・
例文、怖えぇ〜
【headless】
1. 頭部のない、首を切られた
・ I saw a headless dog lying beside the road on my way to school. :
学校へ行く途中、道端に首のない犬が転がっているのを見た。
2. 指導者がいない
・ The terrorist group is a headless organization. :
そのテロリスト集団は指導者がいない組織である。
3. ・・
215デフォルトの名無しさん
2024/06/10(月) 08:02:22.79ID:KfgQc11A ヘッドレスってCPUをなくすべきでは
216デフォルトの名無しさん
2024/06/12(水) 21:40:45.55ID:68xFIGJf >>210
>そもそもrunas.exeとsudoの意味論はユーザ切り替えで同一だろ
今のSudo for Windowsは同一じゃない
https://learn.microsoft.com/ja-jp/windows/sudo/#how-is-sudo-for-windows-different-from-the-existing-runas-command
>現時点で Windows 上の sudo コマンドは、他のユーザーとしてのプログラムの実行をサポートしていません。
>そもそもrunas.exeとsudoの意味論はユーザ切り替えで同一だろ
今のSudo for Windowsは同一じゃない
https://learn.microsoft.com/ja-jp/windows/sudo/#how-is-sudo-for-windows-different-from-the-existing-runas-command
>現時点で Windows 上の sudo コマンドは、他のユーザーとしてのプログラムの実行をサポートしていません。
217デフォルトの名無しさん
2024/06/13(木) 01:51:19.96ID:I2CUi2vW218デフォルトの名無しさん
2024/06/19(水) 22:42:22.27ID:pSP80P6j 古い業務システムでデータ入力する時に自動化しようと思ったんだが、
Enterがカーソル位置以降の文字消してフォーカス移動、NumpadEnter(テンキーのEnter)がEnter、
左CtrlがCtrl、右CtrlがEnterという機能になっている。
powershellのSendkeysだとどうやってNumpadEnterか右Ctrlを選択すればいいのでしょうか?
Enterがカーソル位置以降の文字消してフォーカス移動、NumpadEnter(テンキーのEnter)がEnter、
左CtrlがCtrl、右CtrlがEnterという機能になっている。
powershellのSendkeysだとどうやってNumpadEnterか右Ctrlを選択すればいいのでしょうか?
219デフォルトの名無しさん
2024/06/19(水) 22:46:04.00ID:rsgeG4yq VBのSendKeysと変わらないと思う
220デフォルトの名無しさん
2024/06/21(金) 17:49:04.98ID:LwqdtCE6 >>218
無料のRPAでやる方法もあるよ
無料のRPAでやる方法もあるよ
221デフォルトの名無しさん
2024/06/22(土) 01:38:41.92ID:uvHlEJ4P powershellってlinuxでも使えますっけ?
222デフォルトの名無しさん
2024/06/22(土) 05:23:03.55ID:dw6Bjmix 使えます
223デフォルトの名無しさん
2024/06/22(土) 19:51:57.56ID:dw6Bjmix Win10のPowerShellのC#がVS2022のC#とバージョンが違って戸惑う…。
Win11ではそこまで違和感ないのだろうか?
foreach (var item in File.ReadAllLines(fileName).Select((line, i) => $"{i + 1,2}:{line}"))
としたかったのにReadAllLinesも使えないし、 $"{i + 1,2}:{line}"部分も使えない。
何か、隔世の感がある…。
Win11ではそこまで違和感ないのだろうか?
foreach (var item in File.ReadAllLines(fileName).Select((line, i) => $"{i + 1,2}:{line}"))
としたかったのにReadAllLinesも使えないし、 $"{i + 1,2}:{line}"部分も使えない。
何か、隔世の感がある…。
224デフォルトの名無しさん
2024/06/23(日) 00:24:22.40ID:Gy0jYBbT ???
225デフォルトの名無しさん
2024/06/23(日) 01:48:23.24ID:iAmtDmVE PowerShell内蔵のC#スクリプトがOS毎にバージョンが違って、使えない機能があって不便だって話。
hello.ps1
Add-Type -Path .\hello.cs
[Hello]::hello()
hello.cs
using System;
public static class Hello
{
public static void hello()
{
Console.WriteLine("Hello World!!);
}
}
hello.ps1
Add-Type -Path .\hello.cs
[Hello]::hello()
hello.cs
using System;
public static class Hello
{
public static void hello()
{
Console.WriteLine("Hello World!!);
}
}
226デフォルトの名無しさん
2024/06/23(日) 02:33:27.21ID:QkuO1K/N まあ現在進行形でメンテされてるからな
むしろOS毎に入るバージョンが違ってくるのは当たり前なのでは…
むしろOS毎に入るバージョンが違ってくるのは当たり前なのでは…
227デフォルトの名無しさん
2024/06/23(日) 04:10:59.53ID:iAmtDmVE 分ってるけど、心の叫びだよ。
あ、PowerShellアップデートしてReadAllLinesの方は使えるようになった。
今更ファイルストリームでopen/closeとか嫌すぎたからホッとした。
あ、PowerShellアップデートしてReadAllLinesの方は使えるようになった。
今更ファイルストリームでopen/closeとか嫌すぎたからホッとした。
228デフォルトの名無しさん
2024/06/23(日) 13:37:48.52ID:ermJYjK6 webアプリのテキスト入力部分にpowershellスクリプトで自動的に文字入力をしています
しかし動作させるタイミングによってIMEが日本語入力になっていたり直接入力になっていたりしています
「無変換」キーに「IMEオフ」を割り当てて文字入力の前にpowershellで自動的に無変換キーを押下させましたが当方の環境では何故か期待通りの結果にならず、やむなくタスクバートレイのIMEアイコンを右クリック(メニュー表示)→「直接入力」左クリックをpowershellで自動でやって実現しています
しかしこの方法はスマートじゃないです
powershellで他のアプリに入力中のIMEの設定を「直接入力」モードにスマートに切り替える方法があれば教えてください
しかし動作させるタイミングによってIMEが日本語入力になっていたり直接入力になっていたりしています
「無変換」キーに「IMEオフ」を割り当てて文字入力の前にpowershellで自動的に無変換キーを押下させましたが当方の環境では何故か期待通りの結果にならず、やむなくタスクバートレイのIMEアイコンを右クリック(メニュー表示)→「直接入力」左クリックをpowershellで自動でやって実現しています
しかしこの方法はスマートじゃないです
powershellで他のアプリに入力中のIMEの設定を「直接入力」モードにスマートに切り替える方法があれば教えてください
229デフォルトの名無しさん
2024/06/23(日) 13:50:30.91ID:e+eCK7bX 望んでいる答えではないと思うがWebアプリなら素直にブラウザのプラグインでJavaScriptを動かす方法を一度覚えておいたほうが幸せになれると思う
安定性も増すしやれることの幅もかなり広がる
安定性も増すしやれることの幅もかなり広がる
230デフォルトの名無しさん
2024/06/23(日) 13:52:52.91ID:eptuMF0K231デフォルトの名無しさん
2024/06/23(日) 14:57:30.86ID:nCpb5rpZ >>228
WindowsFormsあたり使えばできるんじゃないの?と思ってCopilotに聞いてみた
Add-Type -TypeDefinition @"
using System;
using System.Runtime.InteropServices;
public class ImeControl {
[DllImport("user32.dll")]
public static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll")]
public static extern int ImmAssociateContext(IntPtr hWnd, IntPtr hIMC);
public static void DisableImeMode() {
IntPtr hWnd = GetForegroundWindow();
ImmAssociateContext(hWnd, IntPtr.Zero);
}
}
"@
思ってたんと違った
WindowsFormsあたり使えばできるんじゃないの?と思ってCopilotに聞いてみた
Add-Type -TypeDefinition @"
using System;
using System.Runtime.InteropServices;
public class ImeControl {
[DllImport("user32.dll")]
public static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll")]
public static extern int ImmAssociateContext(IntPtr hWnd, IntPtr hIMC);
public static void DisableImeMode() {
IntPtr hWnd = GetForegroundWindow();
ImmAssociateContext(hWnd, IntPtr.Zero);
}
}
"@
思ってたんと違った
232デフォルトの名無しさん
2024/06/23(日) 17:48:41.99ID:ermJYjK6233デフォルトの名無しさん
2024/06/23(日) 18:39:00.79ID:QkuO1K/N 肝心のアレが入ってないからまともに動かなそう
AIをもっと虐めないとだよ
AIをもっと虐めないとだよ
234デフォルトの名無しさん
2024/06/23(日) 23:34:40.87ID:iAmtDmVE235デフォルトの名無しさん
2024/06/23(日) 23:46:54.32ID:iAmtDmVE xあんまり逆行したかったん。
oあんまり逆行したくなかったん。
oあんまり逆行したくなかったん。
236デフォルトの名無しさん
2024/06/24(月) 00:41:48.16ID:sso3G8sO >>221
使えます。
使えます。
237デフォルトの名無しさん
2024/06/26(水) 17:27:29.44ID:qsKWsaPH 地味にハマったからPowerShell7.5PrevewでC#コード実行の注意点書きこ。
・$Argが$argsに。(ここまではいい)
・$argsに格納されるコマンド引数がカレントディレクトリではなく、「PowerShellを起動したディレクトリ」になっている。
(なので、初期はPowerShellの本体があるフォルダー。しかもcdでカレントディレクトリ変えても、コマンド引数のディレクトリは変化しない)
解決策
(hoge.ps1は$argsを使っているスクリプト)
pwsh hoge.ps1 arg1 arg2
の様にPowerShellを起動してからスクリプトを実行すると、コマンド引数のディレクトリも(そのシェルを起動した時点の)カレントディレクトリに変わる。
・
・$Argが$argsに。(ここまではいい)
・$argsに格納されるコマンド引数がカレントディレクトリではなく、「PowerShellを起動したディレクトリ」になっている。
(なので、初期はPowerShellの本体があるフォルダー。しかもcdでカレントディレクトリ変えても、コマンド引数のディレクトリは変化しない)
解決策
(hoge.ps1は$argsを使っているスクリプト)
pwsh hoge.ps1 arg1 arg2
の様にPowerShellを起動してからスクリプトを実行すると、コマンド引数のディレクトリも(そのシェルを起動した時点の)カレントディレクトリに変わる。
・
238デフォルトの名無しさん
2024/06/26(水) 17:31:44.50ID:qsKWsaPH あ、C#はPowerShell7.5で $"{}"(文字列補間式)使えるようになった\(^_^)/
239デフォルトの名無しさん
2024/06/28(金) 09:33:29.65ID:bVzHKq+e 過去に作られたスクリプトなのですが、
$script=(New-Object System.Net.WebClient).DownloadString("https://○○/dir/file1.js")
として別Webサーバからスクリプトを毎回ダウンロードしていたのですが、
そのWebサーバが廃止されるということで、
そのfile1.jsをPCにダウンロードして、それを毎回読み込ませるようにしたいです
$script=Get-Content .\file1.js
としてみましたが、ファイルは読み込めているようですが、
その後の処理でうまく動作しません
何か方法ありますでしょうか
$script=(New-Object System.Net.WebClient).DownloadString("https://○○/dir/file1.js")
として別Webサーバからスクリプトを毎回ダウンロードしていたのですが、
そのWebサーバが廃止されるということで、
そのfile1.jsをPCにダウンロードして、それを毎回読み込ませるようにしたいです
$script=Get-Content .\file1.js
としてみましたが、ファイルは読み込めているようですが、
その後の処理でうまく動作しません
何か方法ありますでしょうか
240デフォルトの名無しさん
2024/06/28(金) 21:59:51.65ID:1ppaObvA file1.jsのエンコーディングはどうなってるの?
241デフォルトの名無しさん
2024/06/28(金) 23:09:31.36ID:YK96fiDO242デフォルトの名無しさん
2024/06/29(土) 12:31:22.88ID:AKI9JxZ5 カレントディレクトリという甘えた幻想は捨てろ
243デフォルトの名無しさん
2024/07/07(日) 11:58:14.30ID:L0BIfwX5 カレンちゃんとディレクトリしたい
244デフォルトの名無しさん
2024/07/07(日) 13:02:55.78ID:LfIamK5n Get-Item カレンデバイス
245デフォルトの名無しさん
2024/07/07(日) 22:31:52.21ID:gAixcUjS カレンちゃんって誰だよ競走馬じゃないんだぞ
246デフォルトの名無しさん
2024/07/08(月) 19:41:40.15ID:f8BMTbPy きんモザ
247デフォルトの名無しさん
2024/07/18(木) 01:02:53.21ID:X/v3DPD5 windows10から11に変えたらwindows10ではちゃんと動いていたスクリプトが動作しなくなりました。
ショートカットに「powershell -file スクリプトのフルパス」と書いて目的のファイルをD&Dして使用しています。
ISEからだと一応動作して「引数が足りません」になるんですが、ショートカットからでは一瞬ウインドウが開くだけで何も起きません。
-NoExitをつけてもウインドウが閉じてしまいます。閉じるのが早すぎて正確にはわかりませんがウインドウには何も表示されていないようです。
「consolehost_history.txt」がログのようなので見てみたんですが、何も実行されていないようです。
管理者権限でpowershellを起動してから「スクリプトのフルパス "引数になるファイルのフルパス"」では正常に動作しました。
powershell.exeを右クリックで管理者権限で実行にチェックを入れても動作せず。
windows11になってからpowershellのショートカットを作る方法に変化があったのでしょうか?
ショートカットに「powershell -file スクリプトのフルパス」と書いて目的のファイルをD&Dして使用しています。
ISEからだと一応動作して「引数が足りません」になるんですが、ショートカットからでは一瞬ウインドウが開くだけで何も起きません。
-NoExitをつけてもウインドウが閉じてしまいます。閉じるのが早すぎて正確にはわかりませんがウインドウには何も表示されていないようです。
「consolehost_history.txt」がログのようなので見てみたんですが、何も実行されていないようです。
管理者権限でpowershellを起動してから「スクリプトのフルパス "引数になるファイルのフルパス"」では正常に動作しました。
powershell.exeを右クリックで管理者権限で実行にチェックを入れても動作せず。
windows11になってからpowershellのショートカットを作る方法に変化があったのでしょうか?
248デフォルトの名無しさん
2024/07/18(木) 01:29:27.44ID:T4qee4Qo >>247
多分まさに>237に書いてる仕様変更の影響かと。
多分まさに>237に書いてる仕様変更の影響かと。
249デフォルトの名無しさん
2024/07/18(木) 12:34:31.99ID:X/v3DPD5 >>248
ありがとうございます。 「pwsh -file スクリプトのフルパス」と書き換えたら起動できたんですが、今度は別のところでwindows10では起きなかったエラーが出てしまいました。
$cmfiletxt = Get-ChildItem -Path "$cmtemp" -Recurse -Depth 1 -Filter "$trimfile"
と書いてある行で、
Second path fragment must not be a drive or UNC name. (Parameter 'expression')
というエラーが出ます。
"$trimfile"の中身は例えば「R:\TEMP\cmtmp\amt9996774\アニメA・ダークギャザリング #1「寶月夜宵」 2023-07-10.m2v.txt」です。
windows10では正常に動作していました。
「amt9996774」の所は連携しているソフトがランダムで自動生成するのでこちらからいじることはできません。
どう修正すればいいでしょうか。
ありがとうございます。 「pwsh -file スクリプトのフルパス」と書き換えたら起動できたんですが、今度は別のところでwindows10では起きなかったエラーが出てしまいました。
$cmfiletxt = Get-ChildItem -Path "$cmtemp" -Recurse -Depth 1 -Filter "$trimfile"
と書いてある行で、
Second path fragment must not be a drive or UNC name. (Parameter 'expression')
というエラーが出ます。
"$trimfile"の中身は例えば「R:\TEMP\cmtmp\amt9996774\アニメA・ダークギャザリング #1「寶月夜宵」 2023-07-10.m2v.txt」です。
windows10では正常に動作していました。
「amt9996774」の所は連携しているソフトがランダムで自動生成するのでこちらからいじることはできません。
どう修正すればいいでしょうか。
250デフォルトの名無しさん
2024/07/18(木) 12:46:56.92ID:2XOaIs3w >>249
変数名が $cmtemp になってるけど、その中身の文字列は e抜きの \cmtmp\ を含むパスなの?
変数名が $cmtemp になってるけど、その中身の文字列は e抜きの \cmtmp\ を含むパスなの?
251デフォルトの名無しさん
2024/07/18(木) 13:09:10.50ID:X/v3DPD5252デフォルトの名無しさん
2024/07/18(木) 13:13:45.35ID:g0scKYj2 >>249
ダブルコーテーションで括ってるからじゃね
ダブルコーテーションで括ってるからじゃね
253デフォルトの名無しさん
2024/07/18(木) 14:22:52.00ID:eHTBk2KG -Filterにパスを指定しちゃだめ、っていうエラーメッセージ。
ファイル名部分を指定するんだよ。(ワイルドカード)
でもWin10でもエラーになると思うんだけどな。
ファイル名部分を指定するんだよ。(ワイルドカード)
でもWin10でもエラーになると思うんだけどな。
254デフォルトの名無しさん
2024/07/18(木) 14:29:18.66ID:g0scKYj2 >>252
補足
変数をダブルクォーテーションで囲むと
変数の式が展開されてから渡される
変数の中身がファイル名でスペースを含んでたりすると誤動作する
変数に入ってるんだからそのまま変数で渡せばいい
ファイル名がスペースを含んでいても大丈夫
こんな感じだと思う
補足
変数をダブルクォーテーションで囲むと
変数の式が展開されてから渡される
変数の中身がファイル名でスペースを含んでたりすると誤動作する
変数に入ってるんだからそのまま変数で渡せばいい
ファイル名がスペースを含んでいても大丈夫
こんな感じだと思う
255247
2024/07/18(木) 18:19:03.04ID:X/v3DPD5 ありがとうございます。結局$trimfileの中身をフルパスではなくファイル名のみにするようにしたら処理完了しました。
…本当にwindows10ではこれで動いていたんですけどね…?
ただし別の問題が発生しています。あらかじめ作業フォルダを指定してその下にサブフォルダを生成、そこに処理したファイルを展開するようにしてるんですが、
指定した作業フォルダ(日本語)が文字化けしており、文字化けした作業フォルダを改めて作成してさらにその下にサブフォルダを作るようになってしまいました。
write-hostで表示する日本語も同様に文字化けしており、サブフォルダの名前は正常なのでスクリプト自体の問題ではないと思います。
powershellのタイトルバーを右クリック→設定→左のアイコンからpowershellを選択→外観→フォントフェイスをMSゴシックに変更、では解決しませんでした。
…本当にwindows10ではこれで動いていたんですけどね…?
ただし別の問題が発生しています。あらかじめ作業フォルダを指定してその下にサブフォルダを生成、そこに処理したファイルを展開するようにしてるんですが、
指定した作業フォルダ(日本語)が文字化けしており、文字化けした作業フォルダを改めて作成してさらにその下にサブフォルダを作るようになってしまいました。
write-hostで表示する日本語も同様に文字化けしており、サブフォルダの名前は正常なのでスクリプト自体の問題ではないと思います。
powershellのタイトルバーを右クリック→設定→左のアイコンからpowershellを選択→外観→フォントフェイスをMSゴシックに変更、では解決しませんでした。
256デフォルトの名無しさん
2024/07/18(木) 18:48:37.59ID:2XOaIs3w257デフォルトの名無しさん
2024/07/18(木) 19:04:19.79ID:eHTBk2KG pwshが動く時点で普通のwin11じゃない気がする。pwshは一部の物好きな上級者用じゃない?(もうwin11のデフォルトになった?)
pwshのままだと今後も色々問題出るよ。自己解決していける自信がないなら総合的にはwin11の再インストールが手っ取り早いと思う。
pwshのままだと今後も色々問題出るよ。自己解決していける自信がないなら総合的にはwin11の再インストールが手っ取り早いと思う。
258デフォルトの名無しさん
2024/07/18(木) 20:08:19.40ID:7Xw39CjT powershellが動かなかった理由ってOS変えたからデフォルトのExecutionPolicyの問題で弾かれてただけじゃないの
pwshについては設定変更済みで通ったと
そしてv5向けのスクリプトをそのままv7で動かしたから細かい非互換の問題が出たと
pwshについては設定変更済みで通ったと
そしてv5向けのスクリプトをそのままv7で動かしたから細かい非互換の問題が出たと
259247
2024/07/18(木) 20:55:47.23ID:X/v3DPD5260デフォルトの名無しさん
2024/07/18(木) 21:35:09.26ID:eHTBk2KG pwshを入れたのは後退なので、スタート地点に立てたくらいに思えば。
1. ショートカットのあるディレクトリにで右クリック→ターミナルで開く
2. ショートカット(lnk)を開く
でウインドウが閉じずにエラーメッセージを確認できると思う
1. ショートカットのあるディレクトリにで右クリック→ターミナルで開く
2. ショートカット(lnk)を開く
でウインドウが閉じずにエラーメッセージを確認できると思う
261247
2024/07/18(木) 22:55:07.91ID:X/v3DPD5 >>260
出てきたエラーをコピーしようとしたらNGワードに引っかかったみたいなので要約すると、
・名前が正しく記述されていることを確認しろ、パスを確認しろ
・ コマンドは見つかりませんでしたが、
現在の場所に存在します。Windows PowerShell は、既定では、現在の場所からコマンドを読み込みません。
このコマンドを信頼する場合は、".\(ファイル名)" と入力してください。
言われた通りに.入力したら「引数がないため処理を終了します。」となり、一応正常に終了しました。
出てきたエラーをコピーしようとしたらNGワードに引っかかったみたいなので要約すると、
・名前が正しく記述されていることを確認しろ、パスを確認しろ
・ コマンドは見つかりませんでしたが、
現在の場所に存在します。Windows PowerShell は、既定では、現在の場所からコマンドを読み込みません。
このコマンドを信頼する場合は、".\(ファイル名)" と入力してください。
言われた通りに.入力したら「引数がないため処理を終了します。」となり、一応正常に終了しました。
262デフォルトの名無しさん
2024/07/18(木) 23:26:42.40ID:gkVcHWUr 恐らく11から強制的に使わされてるターミナルが悪いんだろうな
MSストアで入るアプリは総じてゴミだから今すぐ使用中止しろ
ttps://qiita.com/dokimiki/items/f1075003cb37f1b542a8
MSストアで入るアプリは総じてゴミだから今すぐ使用中止しろ
ttps://qiita.com/dokimiki/items/f1075003cb37f1b542a8
263247
2024/07/18(木) 23:57:38.19ID:X/v3DPD5 >>262
リンク先を試してから、powershellを開いてから実行する方法では修正前のスクリプトで文字化けもせず正常に終了しました。
しかしショートカットのD&Dする方法では変わらず一瞬でウインドウが閉じました。
リンク先を試してから、powershellを開いてから実行する方法では修正前のスクリプトで文字化けもせず正常に終了しました。
しかしショートカットのD&Dする方法では変わらず一瞬でウインドウが閉じました。
264デフォルトの名無しさん
2024/07/19(金) 11:00:27.12ID:70UaCPmY >>263
powershellのスクリプトの最後に pause でも追加しておけばいいんじゃね
powershellのスクリプトの最後に pause でも追加しておけばいいんじゃね
265247
2024/07/19(金) 12:40:24.75ID:ct1DQagX あの…、なんか寝て起きて試したら動きました…。
昨日からマジで何も変えてない…。せいぜいUSB-DACのドライバ当てたくらい?
とりあえずこのまま様子見ます…。色々とありがとうございました。
昨日からマジで何も変えてない…。せいぜいUSB-DACのドライバ当てたくらい?
とりあえずこのまま様子見ます…。色々とありがとうございました。
266デフォルトの名無しさん
2024/07/19(金) 15:14:54.49ID:jwlCgmdc 今のターミナルで困ることって何だろう
--headlessが使えないことくらい?
conhostより重いって意見はあるかもしれないけど.NETと比べれば誤差みたいなものだし
--headlessが使えないことくらい?
conhostより重いって意見はあるかもしれないけど.NETと比べれば誤差みたいなものだし
267デフォルトの名無しさん
2024/07/21(日) 22:11:17.98ID:m0XhNdSd Windows terminalは普通に優秀だと思うけど
268デフォルトの名無しさん
2024/07/21(日) 23:51:02.31ID:vKWhifz8 無変換キーを押すと@が書き込まれること以外は完璧
269デフォルトの名無しさん
2024/07/22(月) 09:11:09.38ID:C7pnRrY6 cmdと動作が異なる意味では欠陥
最初にppwershellをコンソールアプリで公開したのは失策
WSH使いからは失笑
最初にppwershellをコンソールアプリで公開したのは失策
WSH使いからは失笑
270デフォルトの名無しさん
2024/07/22(月) 13:17:32.45ID:PeYRIg1J コンソールホストとシェルの区別がついてないお🐴🫎さんかな
271デフォルトの名無しさん
2024/07/27(土) 12:32:42.70ID:+W8EF3Nh ISEって2019年末時点でオプション機能化とか終息に向かうとか言われてたみたいだけど現行Windows11にも普通にプリインストールされてるよな
終息する話は延期になったんだろうか
まぁ弊社みたいなインストール手続きがクッソ面倒なところでは助かるんですが…
終息する話は延期になったんだろうか
まぁ弊社みたいなインストール手続きがクッソ面倒なところでは助かるんですが…
272デフォルトの名無しさん
2024/07/27(土) 12:49:12.36ID:KGtSZjqO 収束するには代わりにVSCodeをプリインストールするようにしてくれないと
273デフォルトの名無しさん
2024/07/27(土) 15:16:22.47ID:7uwMSqss 削除予定はないよ
今後の機能追加がないだけ
プリインストールしたらしたで欧米人がMS訴えるじゃん?
エディタはどうぞお好きなものをお使いください
未だにVSCodeすらインストール許可が出ない会社ならそこの組織の問題
淘汰されるまでそうしていればいい
客先のサーバーで作業中のエンジニアならスクリプトは事前準備したものだけ使うか一旦課題を持ち帰れ
今後の機能追加がないだけ
プリインストールしたらしたで欧米人がMS訴えるじゃん?
エディタはどうぞお好きなものをお使いください
未だにVSCodeすらインストール許可が出ない会社ならそこの組織の問題
淘汰されるまでそうしていればいい
客先のサーバーで作業中のエンジニアならスクリプトは事前準備したものだけ使うか一旦課題を持ち帰れ
274デフォルトの名無しさん
2024/07/28(日) 21:35:37.31ID:cLn1FmEd ISEの優位性って何?使ったことないけどvscodeにできないことができたりする?
275デフォルトの名無しさん
2024/07/29(月) 07:56:32.32ID:4FIXkUHw プリインストールされていること
レスを投稿する
ニュース
- トランプ氏、日中の対立を懸念 首相に「エスカレート回避を」−日本政府関係者(共同) ★2 [蚤の市★]
- 中国外務省「正式な発言撤回なければ受け入れず」 高市首相は台湾有事「存立危機事態」言及せずも「言及しないことと撤回は別問題」★2 [ぐれ★]
- トランプ氏、日中対立激化は望まず 直接関与に日本政府内に危機感も [蚤の市★]
- 【おっぱい】「女性を見つけた瞬間に揉みたいという衝動にかられ…」路上で25歳女性に不同意わいせつ行為か 21歳土木作業員の男を逮捕 [nita★]
- 【テレビ】玉川徹「これ天災じゃなくて人災でしょ。責任どうするんだ」 日本のホテル、中国人観光客からのキャンセルが相次ぐ [冬月記者★]
- プーチン大統領「ウクライナ軍が撤退すれば戦闘は終わる」と主張 [どどん★]
- 【悲報】野田「台湾問題はどうお考えで?高市首相」高市「・・・」野田「これもう事実上の撤回ですね!ユルシテ」中国「認めぬ」 [483862913]
- 野田佳彦「安倍晋三はには優しさがあった。自他共栄の精神があるおおらかな保守。確固とした政策論や哲学があった。クスリとさせられた」 [932029429]
- 自民党広報「日本政府の立場は一貫しているのに、中国が勝手に高市答弁を“撤回しろ”と言っている。」 [834922174]
- 【悲報】高市内閣「WSJの記事はデマ」⇒共同「独自取材によると、トランプ氏は中国との対立をエスカレートするなと要請」 [115996789]
- 『遠藤』と『田中』と『山崎』にいじめられてる
- るるさんって朝からパァンされてるのか
