【最強CUI】PowerShell -Part 2 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
>>511
NPOIとかClosedXMLすら使ったことないん? そもそもエクセルプロセスが生きてる以外にリーク判定ってどうやってんだ? 質問です。EXCELファイル内のマクロコードをGREP検索したいのですが
powershellからそのようなことは出来るのでしょうか?
(powershell以外の方法でも構いません) >>513
C# の話な
> 逆に聞きたいんだが適切にCloseやQuitしててもリソースリークするエビデンスってある?
適切の意味にもよるけどシートを参照したままApplication.Quit() してもリソースリークするって言うのはググれば出てくる
(これはVB.NETの例だけど)
https://social.msdn.microsoft.com/Forums/ja-JP/3a296f83-4a49-4561-a735-570aa7430874/ecxel?forum=vbgeneralja
>>514
COMの話であることも理解できないアホは絡んでくるなよ >>518
お前が誰か知らんけどそんなレスしかできないなら黙ってなよ w >>517
エビデンスって言うには弱いな
コードの断片だけ見せて開放されないんですって言ってる人が居たってだけで
それにこれたぶんGC回ったら回収されるパターンでしょ MSのメモリリークのバグなんて昔から何度もあったのに。MSも随分と信用を得たものだ。 まあ今時COMって言うのは間違ってはないとは思うがCOMの話してるのにNPOIとかClosedXMLととか言い出す>>514が頓珍漢であることは変わらない VS2017にATLついてる。なぜならMSが必要だから。COMなしではWindowsは動かない基盤技術。
おまえらの2chブラウザも動かなくなる。 流れを見ると>>500のレスを>>505が勝手にCOMの話と勘違いしたからそもそも話しがおかしくなってるんだと思うけど
どっちにしろたいした話もできてないからもう終わりでよくね ClosedXMLはExcelを操作するんじゃなくてExcelファイルを操作するライブラリだしww
てかいつまで粘着するの? エクセルでcsvを開いて、名前変えてエクセルファイルとして保存したいんだけど、
c:/test.csv
から
c:/test_add.xlsx
って感じに。
このとき、split-path $_ -parent + "/" + $.basename + "_add.xlsx"
みたいな書き方してるんだけど、もっとカッコいい良い書き方ある? >>534
かっこいいかは分からんけどjoin-path使ったり
Join-Path $_.Directory ($_.BaseName + "_add.xlsx")
置換したり
$_.FullName -replace "\.csv$", "_add.xlsx"
単に文字列内で展開してもいいだろうし
"$($_.Directory)\$($_.BaseName)_add.xlsx" >>535
ありがとうございます。
さらっと3通り出るのすごい。
joinがpowershell 使ってる感あって好き、けど文字列内の$$もいいな PowerShellで画面の文字拡大率を変更する事は可能?
ノートPC使っていると、150%とか100%を変えたい時があるが
いちいちGUIで変更するのが大変 PowerShell.exeのショートカット2つ作ってプロパティで色やらフォントサイズやらを別々に設定して
好きな方を起動するというのはできる 顔を画面に近づけるだけだろ。どんだけデブなんだよ。 好きに変更すりゃいいじゃねーか。GUIで変更は嫌だとか、キーに割り当てるのも嫌だとか、
顔近づけるのも嫌だとか、ほんとデブは馬鹿で横着だからヤダね。
メイドでも雇って変更してもらえや。 >>537 で言っているのは、何の画面のこと?
powershell.exeのコマンド画面も
powershell_iseのエディターも既定値設定できるんで
なんの話か理解できなくて。 自分の文章理解力がなかった
Windowsの画面そのもののフォントサイズを
変更したいという話だったのね。 GUIで設定するのも面倒、句読点を打つのも面倒。脳に障害があるレベルだな。
だが安心してください。Windowsには障碍者モードが実装されてます。 まあ、PowerShellというよりもWindowsコンソールが機能不足かつ分かりづらいのは確か
ただ、フォントサイズくらいは変えられる PPMとか生成したバイナリデータをリダイレクトで保存するのは難しいのかな
cmdはできるのに 句読点の付け方は別に間違っちゃいないけど、2chでそこまでしっかり打つのは少数派だから
ちょっと異様に見えるよ 単純に低学歴、低知能は句読点を打たない。
文章や論文を書く習慣がないし本も全く読まないから句読点がないことに違和感がない。つまり馬鹿。
ひろゆきすら打つ。くだらない知ったかして2ch素人にもほどがあるな。
しかも句読点があると異様だとかもはや脳みそに蛆でも沸いてるレベル。もはや日本人じゃないな。
1 名前:ひろゆき@どうやら管理人 ★[] 投稿日:2014/04/09(水) 14:47:55.24 ID:???
なんらかの不具合を見つけたら、
報告するスレッド。
118 名前:ひろゆき@どうやら管理人 ★[] 投稿日:2014/04/12(土) 02:48:58.08 ID:???
>>25
どうぞ、どうぞ。 ひろゆきも打つからなんだっつーの
本と2ch(というかメールやブログのコメントもだけど)は大きく違う
ソフトによって画面端での自動の改行がさされたりされなかったりするから、長い行はあまり書かない
「。」の代わりに改行で済ますように変化してる
行末に「。」を付けるのはかなり少数派だよ >>550
そういう見方もあるだろうが
昔に戻ると、句読点は必須ではなく
文章に不慣れな人達のために使われるようになったそうで、
いまでいう高学歴というような人に対しては使わないもの
だったそうだ。
そのために、今でも表彰状などには句読点は一切使われない。
ちなみに、句読点が一般的に使われるようになったのは、
明治半ば以降だそうだ。
、 読みづらくなきゃなんでもいいと思うよ
クッソ読みづらくても句読点のあるなしにしか拘らん方が問題ある
読みやすい文の組み立てを心がければいいでしょう 感謝状、招待状等あえて句読点をつけない文章の共通点とは?
https://woman.mynavi.jp/article/150205-71/
かつて、句読点を付けるのは『相手を見下す』
要は、句読点がないと文章も読めないだろうと相手を見なすことに
なることだったようだ。
ま、当時は漢字の利用頻度も高く、漢字ひらがな混じりでも
読みやすかったのでしょう。今はひらがななどの割合が高いので
やはり適切に句読点を使う必要あるんでしょうね。 長文でひらがな比率高いと文の区切りが分からなくなりますからね。 >>550
句読点の、打ち方が下手な香具師もよく、見かける 単に句読点はこのスレで低レベルな煽りを繰り返してるキチガイの特徴ってことだろ
IDかわってもすぐわかる powershellだけでプロジェクト組むとしたらどういうフォルダ構造にする? 煽りうざいから話題換えよう
>>559
良い質問な気がする
ただオレ自身は単ファイルで済むバッチ
みたいなのを書くのがほとんどだから
もし本格的なプロジェクトのフォルダ構成を組むなら
JavaとかRubyとか他言語の構成をマネするかな PSCustomObjectで特定のinterfaceを実装したいんだがやりかたわからん
public interface IFoo {
int Bar(int x);
}
public static class Hoge {
public static void Fuga(IFoo foo) {
Console.WriteLine(foo.Bar(100));
}
$foo = new-object pscustomobject |
add-member -passthru -membertype scriptmethod -name Bar -value { param($p)
return 200 }
[Hoge]::Fuga($foo)
こういうことしたい GoやTypeScriptじゃないんだからメソッドを持ってるからってinterfaceを実装してることにはならんよ
素直にIFooを実装するclassを定義すれば? >>566
むしろ今の内に5.1以降(できれば最新の6.0.1)に慣れておくほうが良いと思うけどな 業務で使うマシンはOSが最新とは限らない
PSもほとんどアップデートされてない
だから低いバージョンでも使えるように訓練したほうがいい
最新版は追いかけるメリットがない 企業ならクライアントもWindows 7とか珍しくないから配布するようなスクリプトだと2.0前提 >>566
add-typeあるんだから普通にC#で書けば良くね
https://pastebin.com/mnvdH77F
PSCustomObjectに実装しないといけないなら知らんけど >>571
それじゃpowershellコマンド使えないじゃん 句読点を多用するのは下手な日本語で嫌われる。
もともとどこが句切りかわからないひと向けの記号だから、句読点の使用は馬鹿にされることもある。 pushd/popd 便利やなあ
わしゃずっとcd使っとったぞい >>575
わたしゃ多用してますわ
push-location
pop-location
と省略せずにつかっておりますです c# scriptingのほうが楽とちゃうか?
ネイティヴコマンド連携だけは若干ps有利かなといった印象 その時々で都合の良いほうを使えばいいよ
同じ.NETなんだから否定する理由も無い >>577
C# scriptingその後の話題が無いところをみると
どうも今一つなんかな >>577
シェルのlsやらcatやらみたいなのもc# scriptingのほうが楽なの? bashとかが駄目な理由に、bashで書きづらくても、そこからpythonとか他の言語にするなら全部書き直しになる CLIが嬉しいと言いたいのかな。ちょっと論旨が理解できないが。 script vs shell scriptとか何十年前の話題だよ
進歩のない連中だ OSのシェルとプログラミング言語の区別がない人間ばかりだから仕方ない。 シェルスクリプトをどちらかに分類したがるのは無理なのでは。 単に、UNIXなどで単機能インタープリターをシェルと
呼び始めたんで、シェルは別物と思う人たちが出てきて
しまっただけ。 OSのシステムコールとプログラミング言語の区別がない人間も多い システムコールとライブラリ関数
http://jibun.atmarkit.co.jp/lskill01/rensai/fulinux/02/01.html
システムコールとライブラリ関数の区別は曖昧で、
昔はシステムコールだった手続きも今はライブラリ関数として実装されていることがありますし、その逆もあります。
そういった意味では、システムコールとライブラリ関数の違いを本気で意識しなければならないのは
カーネルや基幹ライブラリを書くプログラマくらいと言えるかもしれません。
システムコールとライブラリ関数の違いが実際に役に立つのは、manページを参照するときです。
例えば「printf」にはコマンドのprintfとライブラリ関数のprintfがあるので、
ライブラリ関数のprintfの解説が見たければ「man 3 printf」と入力しないといけません。
「write」にはコマンドのwriteとシステムコールのwriteがあるので、
システムコールのほうが読みたければ「man 2 write」と入力しないといけません。 >>586
おまえはシェルがシェルスクリプトだと思っているのか? シェル用のスクリプトだからシェルスクリプトなのに。 powershell_ise coreとかあったら良いのに
と思ったけど流石に需要ないか >>596
俺も欲しい
vscodeでも出来るけど、捨てコード書くには面倒なんだよね VSCode の、Code Runner
ソースコードの範囲を選択して、実行できる
これは、便利なプラグイン! >>598
それ入れてないけど、範囲選択+F8で部分実行できたぞ
多分バージョンアップで不要になったプラグインだね 部分実行できる言語もあるしできない言語もある
対象言語にも触れず「これは便利!」っつってる>>598もアホだし、対象言語もわかってないのに「バージョンアップで不要になったプラグイン」っつってる>>599もアホ VSCode の、Code Runner
ソースコードの範囲を選択して、右クリックメニューから実行できる
便利なプラグイン!
PowerShell にも対応している powershell coreでNuGetパッケージを使いたい場合ってどうすればいいの
Dapperを使う時にC#だったらdotnet add package Dapper; dotnet restoreだけどpowershellプロジェクトだとどうするのかな dotnet add package Dapper
dotnet restore --packages ./packages
Add-Type $source -ReferencedAssemblies netstandard, ./packages/.../Dapper.dll
これでできたわ
お前らまじで使えねえなー とあるフォルダ配下にあるテキストファイルだけ抽出して配列に格納
別のフォルダ配下にあるテキストファイルだけ抽出して配列に格納し配列同士を比較して同じファイルのみを抜き出してCompare-Objectで比較したいんですけどどうやったらできますか? >>607
$a = ls "フォルダ1" *.txt
$b = ls "フォルダ2" *.txt
$a + $b | group name | where count -eq 2 | foreach { $_.name; compare (gc $_.group[0] .fullname) (gc $_.group[1].fullname) | ft } >>608
>gc $_.group[0] .fullname
.fullname の前に、半角空白が入っているから、エラーになる >>608
似たようなことよくやるが、やっぱ癖が出るね
自分なら最初こうやるかな
@(
Get-ChildItem "フォルダ1" *.txt
Get-ChildItem "フォルダ2" *.txt
)|
変数あまり使いたくないし、lsは動作がUNIXとは違うから紛らわしくて >>609
ありゃconemuだと折返し部分に勝手にスペース入っちゃうんだな
>>610
そのへんは好みだとしてもそれ見て気づいたけどファイルが一つしかなくて$aが配列じゃない場合 $a + $b だとエラーになるね
@($a; $b) とすべきだったか 1つか複数かで、オブジェクトの型が違うのか
ややこしい言語やな そういう細かい変な挙動がめんどくさいからC#で書いてAdd-Typeしてるわ
Linqあれば大抵の処理はPowerShellより書きやすいし読みやすい ■ このスレッドは過去ログ倉庫に格納されています