前スレ
PowerShell -Part 6
https://mevius.5ch.net/test/read.cgi/tech/1644744972/
次スレは>>980が立ててね!!
PowerShell -Part 7
1デフォルトの名無しさん
2023/11/29(水) 16:07:49.46ID:0g8RZ7sB166デフォルトの名無しさん
2024/04/06(土) 20:16:29.68ID:qfnATLfz まぁMSはOSも言語も開発環境も既に人気もなく寿命もつきようとしてるから
Windows最後の砦だったゲームもValveがProtonとSteam OS作ったからLinuxでほぼすべてのゲームが動いてパフォーマンスもWindowsより良い場合もある
ただしあくまでエミュレートだからカーネルモードで動くアンチチートだけは動かなくてフォトナやヴァロやApexなんかの人気FPSが動かなかったり永久BAN対象になる
まぁこれも時間の問題でWindowsが必要とされなくなるのは間近だな
Windows最後の砦だったゲームもValveがProtonとSteam OS作ったからLinuxでほぼすべてのゲームが動いてパフォーマンスもWindowsより良い場合もある
ただしあくまでエミュレートだからカーネルモードで動くアンチチートだけは動かなくてフォトナやヴァロやApexなんかの人気FPSが動かなかったり永久BAN対象になる
まぁこれも時間の問題でWindowsが必要とされなくなるのは間近だな
167デフォルトの名無しさん
2024/04/06(土) 20:56:33.00ID:9cPJ1AnL いるよねこういう極論振り回す人
脳内で完結してるから聞く耳を持たない
脳内で完結してるから聞く耳を持たない
168デフォルトの名無しさん
2024/04/07(日) 09:15:27.80ID:nb2SxK5J プログラマに限らずIT界隈はMS批判するのがカッコいいと勘違いしてる人多いからね
169デフォルトの名無しさん
2024/04/07(日) 10:22:00.29ID:K0Taf7XF >>165
まあ、マイクロソフトだから、拡張子を3文字にする慣習が伝統的にあるせいかな。
まあ、マイクロソフトだから、拡張子を3文字にする慣習が伝統的にあるせいかな。
170デフォルトの名無しさん
2024/04/07(日) 10:23:05.93ID:K0Taf7XF >>167
いまでもシェアのほとんどがWindowsなのにね
いまでもシェアのほとんどがWindowsなのにね
171デフォルトの名無しさん
2024/04/08(月) 21:40:31.39ID:bL5gAXu8 PowerShell の ps1 ファイルは 何故 1なのか
https://tech.guitarrapc.com/entry/2013/09/06/220944
https://tech.guitarrapc.com/entry/2013/09/06/220944
172デフォルトの名無しさん
2024/04/09(火) 00:15:02.63ID:32z8iBj9 powershell 7.xってどういう立ち位置なんだろ
windows標準では入ってないから、開発者向けなのかな
Rubookは7.2が標準だけど
windows標準では入ってないから、開発者向けなのかな
Rubookは7.2が標準だけど
173デフォルトの名無しさん
2024/04/09(火) 03:22:25.95ID:Gy4/KbO3 PowerShell Core(6.0以降) では
・.NET Coreインストール可能なWindows以外のOSでも実行可能
・デフォルト文字コードがUTF8(BOMなし)、改行がLF
・WorkFlowなど機能の一部は使用不可
あと
WindowsPowerShell → PowerShell Coreで破壊的変更あり(PowerShell Core 破壊的変更でBingってください)
C#のソースを流用する場合ジェネリックが使える7.3が便利かなと思います
自分は未だPowerShell Coreに移行出来ていません
・.NET Coreインストール可能なWindows以外のOSでも実行可能
・デフォルト文字コードがUTF8(BOMなし)、改行がLF
・WorkFlowなど機能の一部は使用不可
あと
WindowsPowerShell → PowerShell Coreで破壊的変更あり(PowerShell Core 破壊的変更でBingってください)
C#のソースを流用する場合ジェネリックが使える7.3が便利かなと思います
自分は未だPowerShell Coreに移行出来ていません
174デフォルトの名無しさん
2024/04/09(火) 20:15:01.39ID:ru6IFaGR >>172
解釈はまかせるけど技術ブログでは以下の記載がある
https://devblogs.microsoft.com/powershell/powershell-openssh-team-investments-for-2023/
> As a reminder, PowerShell 7 is built on the latest .NET which does not have the same support lifecycle as Windows. We can’t ship something as a feature in Windows that does not align with Windows’ support lifecycle.
解釈はまかせるけど技術ブログでは以下の記載がある
https://devblogs.microsoft.com/powershell/powershell-openssh-team-investments-for-2023/
> As a reminder, PowerShell 7 is built on the latest .NET which does not have the same support lifecycle as Windows. We can’t ship something as a feature in Windows that does not align with Windows’ support lifecycle.
175デフォルトの名無しさん
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のドライバ当てたくらい?
とりあえずこのまま様子見ます…。色々とありがとうございました。
レスを投稿する
ニュース
- 中国側が首相答弁の撤回要求、日本側拒否★4 [夜のけいちゃん★]
- 中国の局長は「両手をポケット」で対峙 宣伝戦で国民に示す ★4 [蚤の市★]
- 中国側が首相答弁の撤回要求、日本側拒否★5 [夜のけいちゃん★]
- 「厚かましい挑発的発言だ」中国国連大使が高市首相発言に強く反発 日本の常任理事国入りに明確に反対 [ぐれ★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★6 [ぐれ★]
- 解体ごみ約2.3トンを山に不法投棄か トルコ国籍解体工を逮捕 埼玉 [どどん★]
- 【悲報】ファブル「━━━書かれた文面を読むだけの岸田と違って、高市は決断力や行動力があり、自分で責任を取れる。 [257926174]
- 【悲報】高市早苗さん、たった一人で日本を崩壊へ導く [714769305]
- 【悲報】高市総理モノマネにとろサーモン久保田がブチギレ。「しょーもない。高市さんは頑張ろうとしてるやろ」😮 [518915984]
- 【悲報】「やったー!こだわりまくった洋館仕立ての家を建てたぞ!」➡「「離婚したんで住まずに売ります……」 [158478931]
- 精神する時の🏡
- 【画像】日本のリン肥料、7割が中国だった!レアじゃないアースを禁輸されただけて餓死へ [347751896]
