前スレ
PowerShell -Part 5
https://mevius.5ch.net/test/read.cgi/tech/1615994992/
次スレは>>980が立ててね!!
探検
PowerShell -Part 6
■ このスレッドは過去ログ倉庫に格納されています
2022/02/13(日) 18:36:12.07ID:LaQ04ZoE
586デフォルトの名無しさん
2022/11/12(土) 14:51:35.07ID:p3H1JcgM >>585 日本語訳
PowerShell 7.3 の新機能
https://learn.microsoft.com/ja-jp/powershell/scripting/whats-new/what-s-new-in-powershell-73
PowerShell 7.3 の新機能
https://learn.microsoft.com/ja-jp/powershell/scripting/whats-new/what-s-new-in-powershell-73
587デフォルトの名無しさん
2022/11/12(土) 15:22:51.03ID:c/ILT9OL 11でもPowershell起動すると新しいのお試ししろとか表示されるけど5.1で十分だよなぁ
他の鯖系のベンダーのモジュールが5.1に対応しなくなったら考えるわ程度
他の鯖系のベンダーのモジュールが5.1に対応しなくなったら考えるわ程度
588デフォルトの名無しさん
2022/11/12(土) 19:04:11.88ID:lKqjLh4g >>586
前からexperimentalで有ったのは知ってたし、オプションだから嫌なら切ればいいんだけども…
cmdから呼ばれる想定のコマンドは引数処理に癖があるからといって、特定のプログラムのみ特別扱いするワークアラウンド的挙動にはちょっと賛同できない
ワークアラウンドというのはユーザーがやるものだ
pwsh側で個別対応をするとしても、ユーザーが期待する形式の引数を取って、コマンドの期待する形式に変換するラッパースクリプトを用意すれば済むだけの話
普段linux/macでpwsh使ってるから、どれ程の癖なのかは図りかねるが、
前からexperimentalで有ったのは知ってたし、オプションだから嫌なら切ればいいんだけども…
cmdから呼ばれる想定のコマンドは引数処理に癖があるからといって、特定のプログラムのみ特別扱いするワークアラウンド的挙動にはちょっと賛同できない
ワークアラウンドというのはユーザーがやるものだ
pwsh側で個別対応をするとしても、ユーザーが期待する形式の引数を取って、コマンドの期待する形式に変換するラッパースクリプトを用意すれば済むだけの話
普段linux/macでpwsh使ってるから、どれ程の癖なのかは図りかねるが、
589デフォルトの名無しさん
2022/11/14(月) 01:13:06.37ID:zoPzNIvr $obj.('行');
1. 上記を7.3で実行するとハングする。
2. 5.1や7.2ではハングしない。
3. $prop = '行'; $obj.$prop; でもハングする。
4. '行'が違う言葉だとハングしない。
5. $obj.行; だとハングしない。
バグ?バグなの?ゲイツに電凸していいの?
1. 上記を7.3で実行するとハングする。
2. 5.1や7.2ではハングしない。
3. $prop = '行'; $obj.$prop; でもハングする。
4. '行'が違う言葉だとハングしない。
5. $obj.行; だとハングしない。
バグ?バグなの?ゲイツに電凸していいの?
590589
2022/11/14(月) 01:23:18.32ID:zoPzNIvr あ環境はWindows11とmacOS13で再現してます。連投スマソ
591589
2022/11/14(月) 21:56:16.00ID:zoPzNIvr 589の条件4についてだけど、
$obj.([System.Text.Encoding]::UTF8.GetString((0xE8, 0xA1, 0x8C)));
でもハングして、UTF-8での先頭バイトが0xE8だった場合にハングするっぽい。
毎回ハングするのであんまり回数試してないけど。
$obj.([System.Text.Encoding]::UTF8.GetString((0xE8, 0xA1, 0x8C)));
でもハングして、UTF-8での先頭バイトが0xE8だった場合にハングするっぽい。
毎回ハングするのであんまり回数試してないけど。
592デフォルトの名無しさん
2022/11/15(火) 01:46:29.41ID:E2xRIJUz まともにテストしてないか
変なメンテナが紛れてるか
変なメンテナが紛れてるか
593デフォルトの名無しさん
2022/11/15(火) 11:09:43.75ID:ADWqgLY3 7.30-preview.2 Core win10(en-US)だけど大丈夫な感じ
$gyo =[System.Text.Encoding]::UTF8.GetString((0xE8, 0xA1, 0x8C)))
$gyo
行
$trans=@{$gyo="go"}
$trans.$gyo, $trans[$gyo]
go
(まだ日本語IME入れてない新品なので行が入力できないのはご愛嬌)
属性/キーはハッシュ可能な任意のビット列で構わないはずなので、単にエンコルーチンの問題のはず、7.30-preview-2以降のgitレポの差分みては
$gyo =[System.Text.Encoding]::UTF8.GetString((0xE8, 0xA1, 0x8C)))
$gyo
行
$trans=@{$gyo="go"}
$trans.$gyo, $trans[$gyo]
go
(まだ日本語IME入れてない新品なので行が入力できないのはご愛嬌)
属性/キーはハッシュ可能な任意のビット列で構わないはずなので、単にエンコルーチンの問題のはず、7.30-preview-2以降のgitレポの差分みては
594デフォルトの名無しさん
2022/11/15(火) 11:40:25.67ID:Xte85wf7 cx-fxは開始バイトだから安定リリースで出してたらマルチバイト圏壊滅してそうだが
595589
2022/11/16(水) 02:47:51.66ID:VVslFgtK596589
2022/11/18(金) 02:58:42.77ID:5YGh8aoa お巡りさんこの人でつ38909f7ee
でそのコミットの中身がこちら
Update .NET SDK version from `7.0.100-preview.2.22153.17` to `7.0.100-preview.4.22252.9` (#17061)
おふぅ。PowerShellのバグを追っていて大変なものを見つけてしまったーどうしよう?
でそのコミットの中身がこちら
Update .NET SDK version from `7.0.100-preview.2.22153.17` to `7.0.100-preview.4.22252.9` (#17061)
おふぅ。PowerShellのバグを追っていて大変なものを見つけてしまったーどうしよう?
597デフォルトの名無しさん
2022/11/29(火) 18:07:22.13ID:bVQqRFK0 以前は PowerShell の日本語ドキュメントのリポジトリが Github に置いてあったはずですが今は消えていますよね?
事情がよくわからないんですが、マイクロソフトとしてはコミュニティで日本語翻訳を運用しない (機械翻訳でやっていく?) ということなんでしょうか。
それはそれとして、諸事情でネットワーク接続できない場所で日本語ドキュメントを読みたいんですが
どこかでまとめてダウンロードする方法とかありませんかね?
事情がよくわからないんですが、マイクロソフトとしてはコミュニティで日本語翻訳を運用しない (機械翻訳でやっていく?) ということなんでしょうか。
それはそれとして、諸事情でネットワーク接続できない場所で日本語ドキュメントを読みたいんですが
どこかでまとめてダウンロードする方法とかありませんかね?
598デフォルトの名無しさん
2022/11/29(火) 21:34:29.76ID:S4GKm+YH599デフォルトの名無しさん
2022/11/29(火) 21:48:53.54ID:noJ3pHan 日本マイクソロフトは何してんの
600デフォルトの名無しさん
2022/11/29(火) 23:10:55.01ID:F0R68kvV 日本語にすると曖昧になっちゃうからな
英語で厳密に説明されたほうがいいだろうし、ソフトウェア技術者だったら英語は素養の一つだね
英語で厳密に説明されたほうがいいだろうし、ソフトウェア技術者だったら英語は素養の一つだね
601デフォルトの名無しさん
2022/11/30(水) 01:07:23.00ID:oNUduEv2 >>599
ちょまどはイベントに参加したり楽しくやってる
ちょまどはイベントに参加したり楽しくやってる
602デフォルトの名無しさん
2022/11/30(水) 01:12:58.71ID:TaPBZKHt 文字列検索する時は、ラテン文字のキーワードが検索結果に埋もれない日本語ドキュメントのほうが便利
603デフォルトの名無しさん
2022/11/30(水) 02:05:17.65ID:k8p89eha >>597
Get-Helpで取れる情報ならUiCulture指定してSave-Help
https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_updatable_help
それ以外ならGitHubから英語ドキュメント落としてきて機械翻訳かな
オフライン環境でスクリプト書く気はしないから必要なドキュメントは限られるのでは
Get-Helpで取れる情報ならUiCulture指定してSave-Help
https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_updatable_help
それ以外ならGitHubから英語ドキュメント落としてきて機械翻訳かな
オフライン環境でスクリプト書く気はしないから必要なドキュメントは限られるのでは
604デフォルトの名無しさん
2022/11/30(水) 08:53:37.63ID:QfqHtuzd どうしてもドキュメントを日本語化してほしいなら16ビット時代みたいに
日本語版がリリースされる頃には英語版の新バージョンがリリースされている
みたいな事になってもおま国とか文句言わないようにしないとね
英語版が完成してからじゃないと翻訳作業を始められないんだから
日本語版がリリースされる頃には英語版の新バージョンがリリースされている
みたいな事になってもおま国とか文句言わないようにしないとね
英語版が完成してからじゃないと翻訳作業を始められないんだから
605デフォルトの名無しさん
2022/11/30(水) 12:40:03.59ID:4G7kek1Y Google, DeepL, みらい翻訳
「みんなの自動翻訳@TexTra®」は、
国立研究開発法人情報通信研究機構(NICT)が開発した自動翻訳サイトです。無料
mt-auto-minhon-mlt.ucri.jgn-x.jp/
翻訳したいサイトのURLを入力するだけで、自動翻訳結果をエディタ上に再現
「みんなの自動翻訳@TexTra®」は、
国立研究開発法人情報通信研究機構(NICT)が開発した自動翻訳サイトです。無料
mt-auto-minhon-mlt.ucri.jgn-x.jp/
翻訳したいサイトのURLを入力するだけで、自動翻訳結果をエディタ上に再現
606デフォルトの名無しさん
2022/11/30(水) 13:17:37.01ID:Occ07s0g 機械が無料で一瞬でそれなりの翻訳をしてくれる時代になったのに
わざわざ多ヵ国の翻訳チームを雇って変わり続ける膨大なドキュメントへの人件費を出す判断なんてできんだろなあ
わざわざ多ヵ国の翻訳チームを雇って変わり続ける膨大なドキュメントへの人件費を出す判断なんてできんだろなあ
607597
2022/11/30(水) 17:21:56.68ID:zA9UzzGK 私は現時点では PowerShell について全く知識を持たず、
入門的な資料を移動中の合間にタブレットコンピュータで読みたいと考えています。
(通信は出来ないので事前に入れておく必要があります。)
基本理念をわかれば個々のコマンドの資料はたぶん英語でも理解できると思うんですが
新しい概念そのものを英語で読むのはしんどいです。
オフラインで読みたいと思うと ePub (などの電子書籍形式) になっているとやりやすくて
そうするには元が Markdown なら一発で出来ると思ったんですが、
機械翻訳を通してその形に持っていくとなると面倒ですね。
入門的な資料を移動中の合間にタブレットコンピュータで読みたいと考えています。
(通信は出来ないので事前に入れておく必要があります。)
基本理念をわかれば個々のコマンドの資料はたぶん英語でも理解できると思うんですが
新しい概念そのものを英語で読むのはしんどいです。
オフラインで読みたいと思うと ePub (などの電子書籍形式) になっているとやりやすくて
そうするには元が Markdown なら一発で出来ると思ったんですが、
機械翻訳を通してその形に持っていくとなると面倒ですね。
608605
2022/11/30(水) 17:40:14.72ID:4G7kek1Y Markdown は、HTML になるから、
「みんなの自動翻訳@TexTra®」で翻訳できるのでは?
翻訳したいサイトのURLを入力するだけで、自動翻訳結果をエディタ上に再現と書いてあるから、
ローカルPC にある、HTMLへのパスを入力すれば?
「みんなの自動翻訳@TexTra®」で翻訳できるのでは?
翻訳したいサイトのURLを入力するだけで、自動翻訳結果をエディタ上に再現と書いてあるから、
ローカルPC にある、HTMLへのパスを入力すれば?
609597
2022/11/30(水) 18:10:28.67ID:zA9UzzGK610デフォルトの名無しさん
2022/11/30(水) 21:29:56.51ID:QfqHtuzd 適当な電子書籍の解説本でも買えば?
611デフォルトの名無しさん
2022/11/30(水) 23:01:06.28ID:k8p89eha 過去の公式日本語訳が出てきたとして、基本理念を理解したい人の役に立つレベルとは思えない
電子書籍買って読むほうがいい
電子書籍買って読むほうがいい
612デフォルトの名無しさん
2022/12/01(木) 08:18:35.61ID:iTNwCGJv インアクションの邦訳ぐらい?古いのしかないな
613デフォルトの名無しさん
2022/12/01(木) 13:08:12.37ID:Qs+E1f1w もしも古い翻訳テキストが手元にあるなら
それでいいんじゃね
新しい要素だけググって調べてブラウザ上でctrl+Sするなりして保存しておけば?
それでいいんじゃね
新しい要素だけググって調べてブラウザ上でctrl+Sするなりして保存しておけば?
614デフォルトの名無しさん
2022/12/03(土) 12:28:32.79ID:Jt/U29yp 配列の要素を逆順にしたものを得たいのですが, …たとえば,
$a = @(10, 0, 5)
これに対して
$a[-1..-$a.Length] …とすれば,@(5, 0, 10) が得られて,
それで不満は無いのですが,何かもっとシンプルに書ける気がして.
(→ でもこれって $a[-1..0] とは書けないんですね.)
あるいは
[array]::Reverse($a)
とすることで,$a 自体が逆順の中身に変えられるのですが
でも $a自体は 変えたく無いのです
感覚的には
$a.Reverse() とか
$a | Reverse-Object みたいに書けたらいいのに
とは思うのですが(…そんなものは無い)
文字列だったら
[linq.enumerable]::Reverse("abcdef") で逆順を得られるのに
同じ場所に 数値の配列を書いて
[linq.enumerable]::Reverse(@(0,5,1,2))
…としても,何故かできない (なぜなのかはc#に勉強不足な私には分からず)
ってなわけで,別に困ってるわけでは無いのですが
もっと シンプルな書き方ってありますか
$a = @(10, 0, 5)
これに対して
$a[-1..-$a.Length] …とすれば,@(5, 0, 10) が得られて,
それで不満は無いのですが,何かもっとシンプルに書ける気がして.
(→ でもこれって $a[-1..0] とは書けないんですね.)
あるいは
[array]::Reverse($a)
とすることで,$a 自体が逆順の中身に変えられるのですが
でも $a自体は 変えたく無いのです
感覚的には
$a.Reverse() とか
$a | Reverse-Object みたいに書けたらいいのに
とは思うのですが(…そんなものは無い)
文字列だったら
[linq.enumerable]::Reverse("abcdef") で逆順を得られるのに
同じ場所に 数値の配列を書いて
[linq.enumerable]::Reverse(@(0,5,1,2))
…としても,何故かできない (なぜなのかはc#に勉強不足な私には分からず)
ってなわけで,別に困ってるわけでは無いのですが
もっと シンプルな書き方ってありますか
615デフォルトの名無しさん
2022/12/03(土) 14:39:08.81ID:H3EtATlx $a[length - 1 - n]
616デフォルトの名無しさん
2022/12/03(土) 15:49:40.73ID:h4dim/Vw >>614
とりあえず、$a[-1..-$a.Length]だと-1,0,1で並ぶから@(5,10,0)になっちゃうはず。
$a[$a.length..0] が正。
個人的にはlengthじゃなくてcount使ってほしい。
後はsort-object使うか。
$a|sort -des でいける。
ただし遅いので巨大配列には向かない。
とりあえず、$a[-1..-$a.Length]だと-1,0,1で並ぶから@(5,10,0)になっちゃうはず。
$a[$a.length..0] が正。
個人的にはlengthじゃなくてcount使ってほしい。
後はsort-object使うか。
$a|sort -des でいける。
ただし遅いので巨大配列には向かない。
617デフォルトの名無しさん
2022/12/03(土) 18:40:22.74ID:Jt/U29yp >>616
$a[$a.Count..0] 言われてみれば! …これ使わせていただきます
なお,sort を使うと,どうしても数値でsortされてしまうので うまくいかない感じです
何の意味も無い基準でsortして(何の順番も変えないで) -desだけしてくれたらいいのですが
$a[$a.Count..0] 言われてみれば! …これ使わせていただきます
なお,sort を使うと,どうしても数値でsortされてしまうので うまくいかない感じです
何の意味も無い基準でsortして(何の順番も変えないで) -desだけしてくれたらいいのですが
618デフォルトの名無しさん
2022/12/03(土) 19:09:31.97ID:K8Dj9wl7619デフォルトの名無しさん
2022/12/03(土) 19:46:36.52ID:Jt/U29yp >>618 intの配列にcastってことなのか…半分くらいしか理解してませんが
ありがとうございます.
LINQは powershellだと 無理やり感があって,かえって使いにくい感じは ありますね
ありがとうございます.
LINQは powershellだと 無理やり感があって,かえって使いにくい感じは ありますね
620デフォルトの名無しさん
2022/12/03(土) 22:02:33.57ID:vihcAie/ Ruby なら、
reverse -> Array
reverse! -> self 破壊的変更
a = ["a", 2, true]
p a.reverse #=> [true, 2, "a"]
p a #=> ["a", 2, true] (変化なし)
a = ["a", 2, true]
p a.reverse! #=> [true, 2, "a"]
p a #=> [true, 2, "a"] 破壊的変更
reverse -> Array
reverse! -> self 破壊的変更
a = ["a", 2, true]
p a.reverse #=> [true, 2, "a"]
p a #=> ["a", 2, true] (変化なし)
a = ["a", 2, true]
p a.reverse! #=> [true, 2, "a"]
p a #=> [true, 2, "a"] 破壊的変更
621デフォルトの名無しさん
2022/12/05(月) 15:26:18.97ID:9N6A06cG きっと とても初歩的なことだとは思うのですが
$a = "abc"
$job = start-job { write-host $a }
receive-job -Job $job # → 何も出力されない
これって スコープの問題なんでしょうか
{ブロック}の中の $aの中身を "abc"にしたいのですが
$a = "abc"
$job = start-job { write-host $a }
receive-job -Job $job # → 何も出力されない
これって スコープの問題なんでしょうか
{ブロック}の中の $aの中身を "abc"にしたいのですが
622デフォルトの名無しさん
2022/12/05(月) 17:43:14.26ID:sXIIIS0k $using:a
About_Remote_Variables
About_Remote_Variables
623デフォルトの名無しさん
2022/12/05(月) 18:59:35.95ID:9N6A06cG >>622 ありがとうございます
ブロックの中の $a を $Using:$a と書けば望む動作になりました
まぁ、何でusingって名前なんだろ?とか
Remote Variablesとは言うけれど別にリモートじゃないし(?)など
まだ不思議な感じは残りますが…もうちょっと調べたり勉強してみます
ブロックの中の $a を $Using:$a と書けば望む動作になりました
まぁ、何でusingって名前なんだろ?とか
Remote Variablesとは言うけれど別にリモートじゃないし(?)など
まだ不思議な感じは残りますが…もうちょっと調べたり勉強してみます
624デフォルトの名無しさん
2022/12/05(月) 19:22:50.61ID:9N6A06cG $a = "abc"
$job = start-job { param($str); write-host $str } -Arg $a
でも 受け渡せるんですね。
$job = start-job { param($str); write-host $str } -Arg $a
でも 受け渡せるんですね。
625デフォルトの名無しさん
2022/12/05(月) 21:14:48.29ID:Xw9Qnajp Start-Jobでスクリプトブロック実行すると
別プロセスのpowershell.exeが起動してそっちで動く。(少なくともPSv5.1では。)
イメージとしてはコンソールや.ps1から「powershell.exe -f 他スクリプト.ps1」で
他プロセスを動かすくらいに別スコープだと思ってればいいと思う。
別プロセスのpowershell.exeが起動してそっちで動く。(少なくともPSv5.1では。)
イメージとしてはコンソールや.ps1から「powershell.exe -f 他スクリプト.ps1」で
他プロセスを動かすくらいに別スコープだと思ってればいいと思う。
626デフォルトの名無しさん
2022/12/06(火) 03:20:51.26ID:PbeCdWM3 >>599
マイクロソフトのサポートにはとんでもない質問が大量に押し寄せる。
Windows Serverが起動しなくなった。電源が入ってないけど、Windowsのバグに違いないやら、しつこい嫌がらせやら、女に変なことを聞く変態やらと3万円も払って電話してくる。
マイクロソフトのサポートにはとんでもない質問が大量に押し寄せる。
Windows Serverが起動しなくなった。電源が入ってないけど、Windowsのバグに違いないやら、しつこい嫌がらせやら、女に変なことを聞く変態やらと3万円も払って電話してくる。
627デフォルトの名無しさん
2022/12/06(火) 03:22:42.62ID:PbeCdWM3 PowerShellのバージョンがわかりませんのでどうすればいいですか?
こんなのを3万円も払って教えてもらうのが日本人
こんなのを3万円も払って教えてもらうのが日本人
628デフォルトの名無しさん
2022/12/06(火) 06:55:15.41ID:yvaEv+2c 一時片手間にカスタマサポートやってたことあるけど結構トンデモ問合せは多い
いろいろ聞いて行ったら他社の製品の問合せだったなんてオチすらあるし
いろいろ聞いて行ったら他社の製品の問合せだったなんてオチすらあるし
629デフォルトの名無しさん
2022/12/06(火) 07:03:21.20ID:wGOv2qdu630デフォルトの名無しさん
2022/12/19(月) 19:06:25.36ID:ayS530mj functionの中でhashtable @{}を作成してその中にウィンドウと紐付いてるハンドルオブジェクトやらを入れて返して
functionの呼び出し側で使おうとしたら無効なオブジェクトやら何やらのエラーが出てまともに使えなかった
PSObjectに変換して返したらエラーは出なくなったがこれ何だろう
怖すぎなんだが
functionの呼び出し側で使おうとしたら無効なオブジェクトやら何やらのエラーが出てまともに使えなかった
PSObjectに変換して返したらエラーは出なくなったがこれ何だろう
怖すぎなんだが
631デフォルトの名無しさん
2022/12/21(水) 00:09:46.82ID:5pWmYDMC 参照型/値型とかその辺の理解は問題ない?
とエスパーしてみる
とエスパーしてみる
632デフォルトの名無しさん
2022/12/23(金) 17:58:06.26ID:F84mgbO0 紐付けてるオブジェクトやらは.NETの参照型ね
値型だったら恐らくこの問題は起きてないだろうし
PSCustomObjectのプロパティとhashtableの値への紐付けでオブジェクトの生存期間に差異があるようにしか見えないから
functionから戻る時に何か想定外な事が起きてるんだろうなあ
値型だったら恐らくこの問題は起きてないだろうし
PSCustomObjectのプロパティとhashtableの値への紐付けでオブジェクトの生存期間に差異があるようにしか見えないから
functionから戻る時に何か想定外な事が起きてるんだろうなあ
633デフォルトの名無しさん
2022/12/27(火) 14:24:53.22ID:r8IxISV7 コマンド・プロンプトも一切つかったことない状況から
powershellの勉強最近始めたけど難しいね
先ず参考書籍少なすぎ
何から手を付けたらいいのか全くわからん
先輩諸兄はどんな感じで習得していったの?
powershellの勉強最近始めたけど難しいね
先ず参考書籍少なすぎ
何から手を付けたらいいのか全くわからん
先輩諸兄はどんな感じで習得していったの?
634デフォルトの名無しさん
2022/12/27(火) 14:35:15.62ID:ZD0ehGa/ 必要に迫られて色々とネットで調べて解決策を探し回る
そのコードから理解できない部分や言語の基本を調べる(変数や表示の仕方とか色々と)
という泥縄式だな
そのコードから理解できない部分や言語の基本を調べる(変数や表示の仕方とか色々と)
という泥縄式だな
635デフォルトの名無しさん
2022/12/27(火) 15:00:48.14ID:r8IxISV7 ネットしかないのか、仕方ないな、、、
しばらくは苦しみながら覚えるしかないかぁ
しばらくは苦しみながら覚えるしかないかぁ
636デフォルトの名無しさん
2022/12/27(火) 15:45:26.24ID:/tVTIbQ7 Get-Help about_
で出てくるのを一通り読んどきゃ何も苦しむことなんてないだろ
で出てくるのを一通り読んどきゃ何も苦しむことなんてないだろ
637デフォルトの名無しさん
2022/12/27(火) 17:56:17.16ID:0E4juWNJ ある程度使えるようになってから書籍買って読んだら
「大体全部知ってるわ」ってなったから
ネットだけでもいけるだろ
「大体全部知ってるわ」ってなったから
ネットだけでもいけるだろ
638デフォルトの名無しさん
2022/12/27(火) 18:20:49.07ID:U6V4cNSL 他の言語と違って思い込みて書かれた間違った記事が多いから警戒すべし
639デフォルトの名無しさん
2022/12/27(火) 20:24:26.94ID:jYPDn/gh ほかの開発言語やシェルプログラミングにまったく疎い状況からPoweshellで入門してゴリゴリ使いこなしてやろうという路線は正直筋が悪いと思う
とはいえ勉強のためにPythonあたりの入門書をやれとも言いづらい
やはり泥縄式かな
とはいえ勉強のためにPythonあたりの入門書をやれとも言いづらい
やはり泥縄式かな
640デフォルトの名無しさん
2022/12/27(火) 21:27:46.01ID:T5RPj38W >>639
一応VBAとGASが多少できるなったから他の言語も余裕かな、っておもって
PowerShellに手を出したら苦戦してる感じ
一通り基礎を覚えたら実践的に色々と試してみたいけど
powershellは色々覚えることが多すぎてメンドイ、、、
一応VBAとGASが多少できるなったから他の言語も余裕かな、っておもって
PowerShellに手を出したら苦戦してる感じ
一通り基礎を覚えたら実践的に色々と試してみたいけど
powershellは色々覚えることが多すぎてメンドイ、、、
641デフォルトの名無しさん
2022/12/27(火) 21:53:19.53ID:fSsOcWwB 変数?配列?何それ状態から始めてる初心者だけど基本的な用語がわからないから検索にも苦労する
セオリーもわからないから無駄にあれこれやってあとはコメント書きまくってグチャグチャになってる
セオリーもわからないから無駄にあれこれやってあとはコメント書きまくってグチャグチャになってる
642デフォルトの名無しさん
2022/12/27(火) 22:04:55.23ID:vIW/uBHA PythonもJavaも全くコード書けないノンプログラマだけどPowerShellは分かり易い気がする
643デフォルトの名無しさん
2022/12/27(火) 22:58:59.38ID:B+wJL+Im 素人だけど、「PowerShell実践ガイドブック」っていう本は、素人には理解しにくい仕様とかを理解するのにとても役に立った
ただ、いろいろ冗長でちょっと読みづらい本ではある
ただ、いろいろ冗長でちょっと読みづらい本ではある
644デフォルトの名無しさん
2022/12/28(水) 01:26:32.00ID:++xg0WRh PowerShell上で cmd /C xxxx を使うのが最善という結論に到達する
こういうのでいいんだよ的な
こういうのでいいんだよ的な
645デフォルトの名無しさん
2022/12/28(水) 14:16:21.29ID:dmcJ6Qpo ヘルプが出来が良いので何も要らない気はするけど
ハック的なモノや中でどう動いてるとかはpowershellexplained、実用的な書法はPowerShellGetで人気のあるやつ読むとか
ハック的なモノや中でどう動いてるとかはpowershellexplained、実用的な書法はPowerShellGetで人気のあるやつ読むとか
646デフォルトの名無しさん
2022/12/28(水) 21:46:25.70ID:D+6cXnGF PowerShell は配列周りがトリッキーなのを除けば比較的まともな言語だと思う
647デフォルトの名無しさん
2022/12/29(木) 01:00:35.68ID:036NTvOT 覚え始めは Microsoft docs を探し、それでわからなければ個人の解説記事を探した
スクリプトを書くようになってからは about_ から知りたいことを追いかける事が増えた
上でも名前が上がった「PowerShell実践ガイドブック」は、ある程度できるようになってから読んだが
何もわからない状態で読むにも良いと思う
第2章までで基本的なことが身につく
スクリプトを書くようになってからは about_ から知りたいことを追いかける事が増えた
上でも名前が上がった「PowerShell実践ガイドブック」は、ある程度できるようになってから読んだが
何もわからない状態で読むにも良いと思う
第2章までで基本的なことが身につく
648デフォルトの名無しさん
2022/12/29(木) 15:03:24.27ID:867KtYrP パワーシェルの勉強始めたいんですが、学習に良いサイトありませんか?
649デフォルトの名無しさん
2022/12/29(木) 16:02:07.28ID:HWC94+Gl650デフォルトの名無しさん
2022/12/29(木) 16:06:45.35ID:HWC94+Gl あと間違った情報書く奴には必ず突っ込み入るから間違えたまま覚え事故も起き難くなる仕様だと個人的には思ってる
651デフォルトの名無しさん
2022/12/29(木) 16:17:56.35ID:HWC94+Gl powershell何某でぐぐって出てくる日本語の情報はなぜか間違ってたり思い込みで書かれた記事が放置されてて悲しい
情報源としてはstackoverflow辺りをまず探すのが安定
Microsoftの知りたかったことの全て系は役には立つけど知りたい事全てを補完できるわけではない
情報源としてはstackoverflow辺りをまず探すのが安定
Microsoftの知りたかったことの全て系は役には立つけど知りたい事全てを補完できるわけではない
652デフォルトの名無しさん
2023/01/01(日) 00:27:17.84ID:CeabMe2h やり方が多すぎて失敗しているものだからな
653デフォルトの名無しさん
2023/01/03(火) 15:47:50.12ID:naMqCIBL リリース当時は学生だったからPIAをむさぼり読んでたな、楽しい本だった
挙動で間違いやすいのは(スコープを除けば)基本パイプ周りだから、
パイプ使わないスクリプトを書いてけば初手で躓く要素は少ないと思う
挙動で間違いやすいのは(スコープを除けば)基本パイプ周りだから、
パイプ使わないスクリプトを書いてけば初手で躓く要素は少ないと思う
654デフォルトの名無しさん
2023/01/03(火) 21:14:49.48ID:AaMOQNR6 >>653
シェルスクリプトを知っているのが前提だと思っていたが?
シェルスクリプトを知っているのが前提だと思っていたが?
655デフォルトの名無しさん
2023/01/03(火) 21:46:27.47ID:cXTWG1PB パイプで間違う要素なんてあったっけ?
むしろ配列まわりの方が間違いやすい気がするが...
むしろ配列まわりの方が間違いやすい気がするが...
656デフォルトの名無しさん
2023/01/03(火) 22:10:05.90ID:naMqCIBL 前提は知らんけど、配列回りで間違えるのがパイプ使ってる時では?
657デフォルトの名無しさん
2023/01/03(火) 23:27:08.09ID:cXTWG1PB >>656
いやパイプ関係なく PowerShell の配列は色々トリッキー
例えば複数のオブジェクトを配列で返すコマンドレットが要素が1つだけだとオブジェクト自体を返したりするとか
https://qiita.com/hitsumabushi845/items/fe4219ba9daa34f541c2
switch文に配列与えたら各要素を順番に適用する(要は勝手にループする)とか
https://step-learn.com/article/powershell/076-switch-loop.html
いやパイプ関係なく PowerShell の配列は色々トリッキー
例えば複数のオブジェクトを配列で返すコマンドレットが要素が1つだけだとオブジェクト自体を返したりするとか
https://qiita.com/hitsumabushi845/items/fe4219ba9daa34f541c2
switch文に配列与えたら各要素を順番に適用する(要は勝手にループする)とか
https://step-learn.com/article/powershell/076-switch-loop.html
658デフォルトの名無しさん
2023/01/04(水) 00:46:17.26ID:v02S4T2G >>657
まさに前者をパイプ周り(のための)の仕様だって認識してる
カンマ演算子の使い方は知らないとできないけど、型指定しない変数に代入して原因がわからないってことはないでしょ
後者はforやforeach省略出来て便利ってだけで、トリッキーだとは思ったことないわ
まさに前者をパイプ周り(のための)の仕様だって認識してる
カンマ演算子の使い方は知らないとできないけど、型指定しない変数に代入して原因がわからないってことはないでしょ
後者はforやforeach省略出来て便利ってだけで、トリッキーだとは思ったことないわ
659デフォルトの名無しさん
2023/01/04(水) 03:45:39.75ID:jtN0WhrQ switchの評価式に配列をぶち込む発想は他の言語経験有りなら起きないから無害だけど
function戻りの配列の扱いは慣れてても混乱するから特殊な事情が無い限りPSObjectや別のコンテナに入れて返す(脳死)
function戻りの配列の扱いは慣れてても混乱するから特殊な事情が無い限りPSObjectや別のコンテナに入れて返す(脳死)
660デフォルトの名無しさん
2023/01/06(金) 23:20:27.35ID:kugWcEru どなたか助けてください。相談です。
一つのファイルに置換したい複数の数列(0.005→0.000、0.006→0.001、0.007→0.002、etc‥)が存在した場合、うまく自動で全て置換する方法はないでしょうか?
下の置換のコマンドを繰り返し使用してるのですが明らかに非効率で何かうまくできないか考えてます。
(Get-Content ファイル名) | foreach { $_ -replace "置換前","置換後" } | Set-Content ファイル名
一つのファイルに置換したい複数の数列(0.005→0.000、0.006→0.001、0.007→0.002、etc‥)が存在した場合、うまく自動で全て置換する方法はないでしょうか?
下の置換のコマンドを繰り返し使用してるのですが明らかに非効率で何かうまくできないか考えてます。
(Get-Content ファイル名) | foreach { $_ -replace "置換前","置換後" } | Set-Content ファイル名
661デフォルトの名無しさん
2023/01/07(土) 08:57:10.32ID:rjY6PjFx >>660
$hash = @{ 0.005 = 0.000; 0.006 = 0.001; 0.007 = 0.002 }
$hash[0.006]
とすると 0.001 が返るから、"置換後" にあたる部分を $hash["置換前"] とすればいい。
詳しくはハッシュとかハッシュテーブルでググれ
$hash = @{ 0.005 = 0.000; 0.006 = 0.001; 0.007 = 0.002 }
$hash[0.006]
とすると 0.001 が返るから、"置換後" にあたる部分を $hash["置換前"] とすればいい。
詳しくはハッシュとかハッシュテーブルでググれ
662デフォルトの名無しさん
2023/01/07(土) 14:47:12.03ID:tZDUx9Ho ver6.0以降だとスクリプトブロック使えるから、一応こんな感じで一度にできることはできる
"対象の数値" -replace "^[-+]?[0-9]+[.]?[0-9]*", { [decimal]$_.value - 差分の数値 }
数字の足し引きならCSVデータとかで読みこんで処理した方がいいとは思うけど
"対象の数値" -replace "^[-+]?[0-9]+[.]?[0-9]*", { [decimal]$_.value - 差分の数値 }
数字の足し引きならCSVデータとかで読みこんで処理した方がいいとは思うけど
663デフォルトの名無しさん
2023/01/07(土) 15:16:28.02ID:fgMMnpAg >>661,662
すげー。ありがとうございます。
すげー。ありがとうございます。
664デフォルトの名無しさん
2023/01/08(日) 03:23:42.25ID:nZw+zsKC 0.005を足した数値にしたいと書いてないのが不思議
質問者は聞き方がわかっていない
質問者は聞き方がわかっていない
665デフォルトの名無しさん
2023/01/08(日) 09:53:58.06ID:n7Qx+Bf+ ちなみに、v5でも[regex]::Replace()のMatchEvaluatorにスクリプトブロックを渡せるから
>>662より手軽さが劣るけど同様の事ができる。
>>662より手軽さが劣るけど同様の事ができる。
666デフォルトの名無しさん
2023/01/09(月) 14:33:22.12ID:2QUdKeZJ サブディレクトリ以下の全てのファイルに対し、ゾーンIDの削除をしたいのですが、
各ファイルのゾーンIDは
Get-ChildItem -Recurse -File | ?{
$_ | Get-Item -Stream Zone.Identifier -ErrorAction Ignore;
} | Remove-Item -Stream Zone.Identifier;
に書けばできるみたいです。
powershell の勉強のため、下記のような書き方だと、どのように書けばできるのでしょうか?
$itemList = Get-ChildItem $targetFolder -Recurse;
foreach($item in $itemList){
Get-Item -Stream Zone.Identifier -ErrorAction Ignore;
}
各ファイルのゾーンIDは
Get-ChildItem -Recurse -File | ?{
$_ | Get-Item -Stream Zone.Identifier -ErrorAction Ignore;
} | Remove-Item -Stream Zone.Identifier;
に書けばできるみたいです。
powershell の勉強のため、下記のような書き方だと、どのように書けばできるのでしょうか?
$itemList = Get-ChildItem $targetFolder -Recurse;
foreach($item in $itemList){
Get-Item -Stream Zone.Identifier -ErrorAction Ignore;
}
667デフォルトの名無しさん
2023/01/09(月) 15:34:37.62ID:2yNmR2Eh >>666
こういうこと?
foreach($item in $itemList){
if (Get-Item -LiteralPath $item.FullName -Stream Zone.Identifier -ErrorAction Ignore) {
Remove-Item -LiteralPath $item.FullName -Stream Zone.Identifier
}
}
もちろん$itemはLiteralPathの代わりにパイプでオブジェクトごと渡してもいいと思う
こういうこと?
foreach($item in $itemList){
if (Get-Item -LiteralPath $item.FullName -Stream Zone.Identifier -ErrorAction Ignore) {
Remove-Item -LiteralPath $item.FullName -Stream Zone.Identifier
}
}
もちろん$itemはLiteralPathの代わりにパイプでオブジェクトごと渡してもいいと思う
668デフォルトの名無しさん
2023/01/09(月) 15:52:05.35ID:2QUdKeZJ669デフォルトの名無しさん
2023/01/10(火) 05:44:39.22ID:bjV4/8ri 例えば、Ruby で、再帰的にフォルダのサイズを求めてみると、
require 'win32ole'
fso = WIN32OLE.new( 'Scripting.FileSystemObject' )
# 絶対パスのディレクトリ名の後ろに、* を付けること!
# . で始まる、隠しフォルダ・ファイルを除く。
# /**/* で再帰的に、以下の全てのフォルダ・ファイルを走査する
dir_path = "C:/Users/Owner/Documents/**/*"
target_dirs = Dir.glob( dir_path )
.select { |full_path| File.directory?( full_path ) } # フォルダのみ
.each do |folder|
folder_obj = fso.GetFolder( folder )
puts File.expand_path( folder_obj.path ) # \ を、/ に変換する
puts "#{ folder_obj.name } : #{ folder_obj.size }"
end
出力
C:/Users/Owner/Documents/a
a : 14231
C:/Users/Owner/Documents/a/b
b : 4666
# next で、次の繰り返しに進む事もできるが、
# select みたいなフィルターで絞り込む方が、可読性が高い
Dir.glob( dir_path ).each do |full_path|
next unless File.directory?( full_path ) # フォルダだけを処理する
puts full_path
end
require 'win32ole'
fso = WIN32OLE.new( 'Scripting.FileSystemObject' )
# 絶対パスのディレクトリ名の後ろに、* を付けること!
# . で始まる、隠しフォルダ・ファイルを除く。
# /**/* で再帰的に、以下の全てのフォルダ・ファイルを走査する
dir_path = "C:/Users/Owner/Documents/**/*"
target_dirs = Dir.glob( dir_path )
.select { |full_path| File.directory?( full_path ) } # フォルダのみ
.each do |folder|
folder_obj = fso.GetFolder( folder )
puts File.expand_path( folder_obj.path ) # \ を、/ に変換する
puts "#{ folder_obj.name } : #{ folder_obj.size }"
end
出力
C:/Users/Owner/Documents/a
a : 14231
C:/Users/Owner/Documents/a/b
b : 4666
# next で、次の繰り返しに進む事もできるが、
# select みたいなフィルターで絞り込む方が、可読性が高い
Dir.glob( dir_path ).each do |full_path|
next unless File.directory?( full_path ) # フォルダだけを処理する
puts full_path
end
670デフォルトの名無しさん
2023/01/23(月) 12:43:06.27ID:y+pH12Ov Tree /fとget-childitem select-object Full name,を組み合わせたデータがほしいのですが、ご存知の方、ご教示願います。
671デフォルトの名無しさん
2023/01/23(月) 18:21:06.24ID:g43oPRJS >>670
名前の通り再帰処理でフォルダのツリーデータ構造を作ってから出力する事になる。
powershellの関数呼び出しは100ぐらいのネストでスタックオーバーフローするので、
ある程度動作確認が出来たら再帰処理を配列とループに変換するか、
C#なりで書き直す必要があるかも。
名前の通り再帰処理でフォルダのツリーデータ構造を作ってから出力する事になる。
powershellの関数呼び出しは100ぐらいのネストでスタックオーバーフローするので、
ある程度動作確認が出来たら再帰処理を配列とループに変換するか、
C#なりで書き直す必要があるかも。
672デフォルトの名無しさん
2023/01/23(月) 23:52:13.30ID:Aq+myoAC >>670
https://www.powershellgallery.com/packages/Show-Tree/1.0.0
146行目を書き換え Write-Output ("{0}+---{1}" -f $start, ($PSDriveFullPath))
https://www.powershellgallery.com/packages/Show-Tree/1.0.0
146行目を書き換え Write-Output ("{0}+---{1}" -f $start, ($PSDriveFullPath))
673670
2023/01/24(火) 00:18:36.99ID:splC6Inp674デフォルトの名無しさん
2023/02/08(水) 20:31:25.08ID:s0xdk+qH @("2023/01/01,123","2023-01-02,abc","2023 01 03,あいう") | convertfrom-string -delimiter "," | sort-object p1 -descending | convertto-csv -notypeinformation
"yyyy/MM/dd"っぽいと勝手に日付時間の形式に変換されるのですがされないようにできますか?
windows10 PSVersion 5.1.19041.2364
"yyyy/MM/dd"っぽいと勝手に日付時間の形式に変換されるのですがされないようにできますか?
windows10 PSVersion 5.1.19041.2364
675デフォルトの名無しさん
2023/02/08(水) 21:02:50.26ID:s0xdk+qH @("`"2023/01/01`",`"123`"","`"2023/01/02`",`"abc`"","`"2023/01/03`",`"あいう`"") | `
convertfrom-string -delimiter "," | sort-object p1 -descending | foreach-object {"$($_.p1),$($_.p2)"}
こうすれば出来たっぽいけど何かめんどくさい
convertfrom-string -delimiter "," | sort-object p1 -descending | foreach-object {"$($_.p1),$($_.p2)"}
こうすれば出来たっぽいけど何かめんどくさい
676デフォルトの名無しさん
2023/02/08(水) 21:55:45.34ID:Igk1TEx9 >>674
日付でソートするならばConvertFrom-Stringによる日付処理のままDateTime型で扱うのが正しいのでは?
日付でソートするならばConvertFrom-Stringによる日付処理のままDateTime型で扱うのが正しいのでは?
677デフォルトの名無しさん
2023/02/08(水) 22:42:40.57ID:s0xdk+qH csv出力する際に "2023/01/01" が "2023/01/01 00:00:00" となるのを避けたいということです
ソート部分は別の処理をするかもしれないです
わかり難くてすいません
あとは tostring() で変換し直すかくらいでしょうか
ソート部分は別の処理をするかもしれないです
わかり難くてすいません
あとは tostring() で変換し直すかくらいでしょうか
678デフォルトの名無しさん
2023/02/08(水) 23:16:16.35ID:4iQ2gNuN >>674
676 の方針で書き換え量少なめパターン
@("2023/01/01,123","2023-01-02,abc","2023 01 03,あいう") | convertfrom-string -delimiter "," | % { $_.P1 = $_.P1.ToShortDateString() ; $_ } | sort-object p1 -descending | convertto-csv -notypeinformation
Convertfrom-String を使いつつ変換したくないという裏には深い事情がありそうだが
その深い事情を無視していいなら新しくオブジェクトを作るのが楽かな
@("2023/01/01,123","2023-01-02,abc","2023 01 03,あいう") | %{ [PSCustomObject] @{ 'Date'=$_.split(',')[0]; 'content'=$_.split(',')[1] } }
676 の方針で書き換え量少なめパターン
@("2023/01/01,123","2023-01-02,abc","2023 01 03,あいう") | convertfrom-string -delimiter "," | % { $_.P1 = $_.P1.ToShortDateString() ; $_ } | sort-object p1 -descending | convertto-csv -notypeinformation
Convertfrom-String を使いつつ変換したくないという裏には深い事情がありそうだが
その深い事情を無視していいなら新しくオブジェクトを作るのが楽かな
@("2023/01/01,123","2023-01-02,abc","2023 01 03,あいう") | %{ [PSCustomObject] @{ 'Date'=$_.split(',')[0]; 'content'=$_.split(',')[1] } }
679デフォルトの名無しさん
2023/02/08(水) 23:25:37.64ID:KpfZjU7w 自分もConvertfrom-Stringさえ使わなければ楽だと思うが、
当初の質問通りConvertfrom-StringでDateTime型への自動変換を避ける方法、
という事なら
$a = @("2023/01/01,123", "2023-01-02,abc", "2023 01 03,あいう")
$t = @"
{p1*:2023/01/01},{p2:123}
{p1*:*},{p2:*}
"@
$a | ConvertFrom-String -TemplateContent $t
p1 p2
-- --
2023/01/01 123
2023-01-02 abc
2023 01 03 あいう
当初の質問通りConvertfrom-StringでDateTime型への自動変換を避ける方法、
という事なら
$a = @("2023/01/01,123", "2023-01-02,abc", "2023 01 03,あいう")
$t = @"
{p1*:2023/01/01},{p2:123}
{p1*:*},{p2:*}
"@
$a | ConvertFrom-String -TemplateContent $t
p1 p2
-- --
2023/01/01 123
2023-01-02 abc
2023 01 03 あいう
680デフォルトの名無しさん
2023/02/08(水) 23:59:48.39ID:s0xdk+qH681674
2023/02/09(木) 22:15:00.08ID:Zgr5da8a PSCustomObject なんて便利なものがあるんですね
おかげで Convertfrom-String も使わないで済むようになり
日付の自動変換もされなくなりました、ありがとうございました
おかげで Convertfrom-String も使わないで済むようになり
日付の自動変換もされなくなりました、ありがとうございました
682デフォルトの名無しさん
2023/02/09(木) 23:20:46.77ID:wH9zoD6W 本来、肩こりを和らげるマッサージの福利厚生の充実よりも、肩こりしない環境にすることが重要なわけだが、
PowerShellやってる人は、肩こりを和らげるマッサージを喜ぶ傾向が顕著
PowerShellやってる人は、肩こりを和らげるマッサージを喜ぶ傾向が顕著
683デフォルトの名無しさん
2023/02/09(木) 23:53:02.68ID:KDi1Xk2q 秀逸な例えをしたと思ってそう
684デフォルトの名無しさん
2023/02/10(金) 10:20:51.76ID:UXgVE9re 肩こりしない環境ってなんだろ
コマンドプロンプト?
コマンドプロンプト?
685デフォルトの名無しさん
2023/02/10(金) 10:29:00.89ID:SZzF5oES 自分の慣れてる環境のことだろ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★11 [ぐれ★]
- 日本損失1.7兆円に修正 中国渡航自粛の影響試算 [蚤の市★]
- NY円、一時1ユーロ=180円台まで下落…1999年のユーロ導入以来初 [蚤の市★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- 【外交】日中関係悪化、長期化の様相 2012年には自動車輸出80%減も ロイター★3 [1ゲットロボ★]
- 「どうしようもない」 ため息つくアジアの玄関口 中国の訪日自粛で−福岡市 [蚤の市★]
- 【実況】博衣こよりのえちえち朝こよ🧪 ★2
- 【実況】博衣こよりのえちえち朝こよ🧪
- カカロット、腰痛い
- 【悲報】高市早苗を妄信している今の日本人見ると80年前も市民は進んで戦争協力してたんだって理解出来るよね🥺 [616817505]
- 【超悲報】中国への武力行使、世論調査で「賛成」「どちらかといえば賛成」48.8% 「反対」「どちらかといえば反対」の44.2%を上回る [314039747]
- 中国「高市が頭を下げて謝罪しない限り、絶対に許さない」 [329329848]
