前スレ
【最強CUI】PowerShell -Part 1
http://echo.2ch.net/test/read.cgi/tech/1378978504/
探検
【最強CUI】PowerShell -Part 2 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2016/11/26(土) 06:30:02.67ID:pZYy6q7Y
551デフォルトの名無しさん
2018/03/01(木) 12:37:08.99ID:tP9VZ2s0 ひろゆきも打つからなんだっつーの
本と2ch(というかメールやブログのコメントもだけど)は大きく違う
ソフトによって画面端での自動の改行がさされたりされなかったりするから、長い行はあまり書かない
「。」の代わりに改行で済ますように変化してる
行末に「。」を付けるのはかなり少数派だよ
本と2ch(というかメールやブログのコメントもだけど)は大きく違う
ソフトによって画面端での自動の改行がさされたりされなかったりするから、長い行はあまり書かない
「。」の代わりに改行で済ますように変化してる
行末に「。」を付けるのはかなり少数派だよ
552デフォルトの名無しさん
2018/03/01(木) 13:38:12.57ID:Bn8v5XdY >>550
そういう見方もあるだろうが
昔に戻ると、句読点は必須ではなく
文章に不慣れな人達のために使われるようになったそうで、
いまでいう高学歴というような人に対しては使わないもの
だったそうだ。
そのために、今でも表彰状などには句読点は一切使われない。
ちなみに、句読点が一般的に使われるようになったのは、
明治半ば以降だそうだ。
、
そういう見方もあるだろうが
昔に戻ると、句読点は必須ではなく
文章に不慣れな人達のために使われるようになったそうで、
いまでいう高学歴というような人に対しては使わないもの
だったそうだ。
そのために、今でも表彰状などには句読点は一切使われない。
ちなみに、句読点が一般的に使われるようになったのは、
明治半ば以降だそうだ。
、
553デフォルトの名無しさん
2018/03/01(木) 15:34:24.24ID:mJRDcTgH 読みづらくなきゃなんでもいいと思うよ
クッソ読みづらくても句読点のあるなしにしか拘らん方が問題ある
読みやすい文の組み立てを心がければいいでしょう
クッソ読みづらくても句読点のあるなしにしか拘らん方が問題ある
読みやすい文の組み立てを心がければいいでしょう
554デフォルトの名無しさん
2018/03/01(木) 15:34:48.45ID:Bn8v5XdY 感謝状、招待状等あえて句読点をつけない文章の共通点とは?
https://woman.mynavi.jp/article/150205-71/
かつて、句読点を付けるのは『相手を見下す』
要は、句読点がないと文章も読めないだろうと相手を見なすことに
なることだったようだ。
ま、当時は漢字の利用頻度も高く、漢字ひらがな混じりでも
読みやすかったのでしょう。今はひらがななどの割合が高いので
やはり適切に句読点を使う必要あるんでしょうね。
https://woman.mynavi.jp/article/150205-71/
かつて、句読点を付けるのは『相手を見下す』
要は、句読点がないと文章も読めないだろうと相手を見なすことに
なることだったようだ。
ま、当時は漢字の利用頻度も高く、漢字ひらがな混じりでも
読みやすかったのでしょう。今はひらがななどの割合が高いので
やはり適切に句読点を使う必要あるんでしょうね。
555デフォルトの名無しさん
2018/03/01(木) 15:40:17.42ID:mJRDcTgH 長文でひらがな比率高いと文の区切りが分からなくなりますからね。
556デフォルトの名無しさん
2018/03/01(木) 19:01:36.71ID:5P8YUW6k >>550
句読点の、打ち方が下手な香具師もよく、見かける
句読点の、打ち方が下手な香具師もよく、見かける
557デフォルトの名無しさん
2018/03/01(木) 19:41:09.89ID:Bj3H1eP5 単に句読点はこのスレで低レベルな煽りを繰り返してるキチガイの特徴ってことだろ
IDかわってもすぐわかる
IDかわってもすぐわかる
558デフォルトの名無しさん
2018/03/01(木) 19:50:29.18ID:dLJOyeYF 句読点を適切に付与するスクリプト書いてよ
559デフォルトの名無しさん
2018/03/01(木) 20:40:16.88ID:yqOkTTLk powershellだけでプロジェクト組むとしたらどういうフォルダ構造にする?
560デフォルトの名無しさん
2018/03/01(木) 21:33:08.36ID:cFY6likq 中東あたりだと母音を省略してしまうんだよね?
561デフォルトの名無しさん
2018/03/02(金) 12:53:13.17ID:Bue9fMqJ 煽りうざいから話題換えよう
>>559
良い質問な気がする
ただオレ自身は単ファイルで済むバッチ
みたいなのを書くのがほとんどだから
もし本格的なプロジェクトのフォルダ構成を組むなら
JavaとかRubyとか他言語の構成をマネするかな
>>559
良い質問な気がする
ただオレ自身は単ファイルで済むバッチ
みたいなのを書くのがほとんどだから
もし本格的なプロジェクトのフォルダ構成を組むなら
JavaとかRubyとか他言語の構成をマネするかな
562デフォルトの名無しさん
2018/03/03(土) 09:41:45.03ID:7F+xAEZY 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)
こういうことしたい
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)
こういうことしたい
563デフォルトの名無しさん
2018/03/03(土) 22:48:42.40ID:ApJ804E1 GoやTypeScriptじゃないんだからメソッドを持ってるからってinterfaceを実装してることにはならんよ
素直にIFooを実装するclassを定義すれば?
素直にIFooを実装するclassを定義すれば?
564デフォルトの名無しさん
2018/03/04(日) 08:59:59.87ID:DH1b2y4q >>563
そのやり方を知りたい
そのやり方を知りたい
565デフォルトの名無しさん
2018/03/04(日) 09:31:45.51ID:6fb5BRTO566デフォルトの名無しさん
2018/03/04(日) 09:49:31.76ID:DH1b2y4q >>565
2.0でもできる方法教えてください
2.0でもできる方法教えてください
567デフォルトの名無しさん
2018/03/04(日) 10:53:23.51ID:8KjE9Kl8 条件後出しというやつか
568デフォルトの名無しさん
2018/03/04(日) 11:29:41.66ID:xMU3H7cs >>566
むしろ今の内に5.1以降(できれば最新の6.0.1)に慣れておくほうが良いと思うけどな
むしろ今の内に5.1以降(できれば最新の6.0.1)に慣れておくほうが良いと思うけどな
569デフォルトの名無しさん
2018/03/04(日) 12:58:31.78ID:D98mTqXy 業務で使うマシンはOSが最新とは限らない
PSもほとんどアップデートされてない
だから低いバージョンでも使えるように訓練したほうがいい
最新版は追いかけるメリットがない
PSもほとんどアップデートされてない
だから低いバージョンでも使えるように訓練したほうがいい
最新版は追いかけるメリットがない
570デフォルトの名無しさん
2018/03/04(日) 13:10:20.82ID:7vnf9POv 企業ならクライアントもWindows 7とか珍しくないから配布するようなスクリプトだと2.0前提
571デフォルトの名無しさん
2018/03/04(日) 13:58:40.18ID:9+M4xykP572デフォルトの名無しさん
2018/03/04(日) 15:05:09.28ID:IHwduGqd Windows PowerShell 2.0 Deprecation
https://blogs.msdn.microsoft.com/powershell/2017/08/24/windows-powershell-2-0-deprecation/
https://blogs.msdn.microsoft.com/powershell/2017/08/24/windows-powershell-2-0-deprecation/
573デフォルトの名無しさん
2018/03/04(日) 17:24:27.69ID:D98mTqXy >>571
それじゃpowershellコマンド使えないじゃん
それじゃpowershellコマンド使えないじゃん
574デフォルトの名無しさん
2018/03/04(日) 21:56:10.13ID:hNuDXfDM 句読点を多用するのは下手な日本語で嫌われる。
もともとどこが句切りかわからないひと向けの記号だから、句読点の使用は馬鹿にされることもある。
もともとどこが句切りかわからないひと向けの記号だから、句読点の使用は馬鹿にされることもある。
575デフォルトの名無しさん
2018/03/04(日) 22:04:18.45ID:E9oZl2pC pushd/popd 便利やなあ
わしゃずっとcd使っとったぞい
わしゃずっとcd使っとったぞい
576デフォルトの名無しさん
2018/03/05(月) 05:26:47.07ID:ZV3N5zu0577デフォルトの名無しさん
2018/03/06(火) 18:11:54.95ID:QwFmEXbL c# scriptingのほうが楽とちゃうか?
ネイティヴコマンド連携だけは若干ps有利かなといった印象
ネイティヴコマンド連携だけは若干ps有利かなといった印象
578デフォルトの名無しさん
2018/03/06(火) 20:17:46.87ID:Xwb93uOm その時々で都合の良いほうを使えばいいよ
同じ.NETなんだから否定する理由も無い
同じ.NETなんだから否定する理由も無い
579デフォルトの名無しさん
2018/03/07(水) 07:41:36.43ID:E7Qx2uww >>578
あ、議論から逃げたw
あ、議論から逃げたw
580デフォルトの名無しさん
2018/03/07(水) 07:47:27.99ID:Bp6mjckS581デフォルトの名無しさん
2018/03/07(水) 21:20:29.09ID:6bAELGui >>577
シェルのlsやらcatやらみたいなのもc# scriptingのほうが楽なの?
シェルのlsやらcatやらみたいなのもc# scriptingのほうが楽なの?
582デフォルトの名無しさん
2018/03/08(木) 00:59:56.29ID:D0NacyLc bashとかが駄目な理由に、bashで書きづらくても、そこからpythonとか他の言語にするなら全部書き直しになる
583デフォルトの名無しさん
2018/03/08(木) 01:13:22.32ID:uJW9EWjF CLIが嬉しいと言いたいのかな。ちょっと論旨が理解できないが。
584デフォルトの名無しさん
2018/03/08(木) 04:26:04.35ID:OsiEjbqp script vs shell scriptとか何十年前の話題だよ
進歩のない連中だ
進歩のない連中だ
585デフォルトの名無しさん
2018/03/15(木) 06:42:05.85ID:D4RVJiAa OSのシェルとプログラミング言語の区別がない人間ばかりだから仕方ない。
586デフォルトの名無しさん
2018/03/15(木) 12:26:16.83ID:Vp0MsA86 シェルスクリプトをどちらかに分類したがるのは無理なのでは。
587デフォルトの名無しさん
2018/03/15(木) 15:36:12.78ID:BVhm+pK4 basicはどっちなん?
588デフォルトの名無しさん
2018/03/15(木) 16:51:24.16ID:2jkAdz6t 単に、UNIXなどで単機能インタープリターをシェルと
呼び始めたんで、シェルは別物と思う人たちが出てきて
しまっただけ。
呼び始めたんで、シェルは別物と思う人たちが出てきて
しまっただけ。
589デフォルトの名無しさん
2018/03/15(木) 22:19:45.69ID:NI14hTsx OSのシステムコールとプログラミング言語の区別がない人間も多い
590デフォルトの名無しさん
2018/03/16(金) 08:54:28.41ID:T21mXgK0 システムコールとライブラリ関数
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」と入力しないといけません。
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」と入力しないといけません。
591デフォルトの名無しさん
2018/03/17(土) 11:59:28.36ID:4+yOSMEm >>586
おまえはシェルがシェルスクリプトだと思っているのか?
おまえはシェルがシェルスクリプトだと思っているのか?
592デフォルトの名無しさん
2018/03/17(土) 12:01:46.42ID:4+yOSMEm シェル用のスクリプトだからシェルスクリプトなのに。
593デフォルトの名無しさん
2018/03/17(土) 16:54:33.86ID:gmKtMsY0 史上嘗て無い頭の悪そうな突っ込み
594デフォルトの名無しさん
2018/03/21(水) 11:12:47.74ID:yOhpRYak ps coreイイね
595デフォルトの名無しさん
2018/03/21(水) 12:31:30.05ID:U1NUu6zm >>594
そっすか
そっすか
596デフォルトの名無しさん
2018/03/21(水) 12:38:11.67ID:sjE01Nui powershell_ise coreとかあったら良いのに
と思ったけど流石に需要ないか
と思ったけど流石に需要ないか
597デフォルトの名無しさん
2018/03/21(水) 12:51:05.01ID:kSqnsZIp598デフォルトの名無しさん
2018/03/22(木) 00:18:59.44ID:tdHViWJs VSCode の、Code Runner
ソースコードの範囲を選択して、実行できる
これは、便利なプラグイン!
ソースコードの範囲を選択して、実行できる
これは、便利なプラグイン!
599デフォルトの名無しさん
2018/03/22(木) 00:26:12.80ID:2RoYBMkH600デフォルトの名無しさん
2018/03/22(木) 01:00:47.33ID:arhMS6Ve601デフォルトの名無しさん
2018/03/22(木) 01:18:02.22ID:2RoYBMkH スレタイも読んでない600が一番アホでは?
602598
2018/03/22(木) 04:55:52.14ID:tdHViWJs VSCode の、Code Runner
ソースコードの範囲を選択して、右クリックメニューから実行できる
便利なプラグイン!
PowerShell にも対応している
ソースコードの範囲を選択して、右クリックメニューから実行できる
便利なプラグイン!
PowerShell にも対応している
603デフォルトの名無しさん
2018/03/22(木) 06:41:35.55ID:G0SZ4nh0 宣伝
604デフォルトの名無しさん
2018/03/24(土) 09:35:21.60ID:9NxgdLlD powershell coreでNuGetパッケージを使いたい場合ってどうすればいいの
Dapperを使う時にC#だったらdotnet add package Dapper; dotnet restoreだけどpowershellプロジェクトだとどうするのかな
Dapperを使う時にC#だったらdotnet add package Dapper; dotnet restoreだけどpowershellプロジェクトだとどうするのかな
605デフォルトの名無しさん
2018/03/25(日) 17:30:21.30ID:rN4AhykW dotnet add package Dapper
dotnet restore --packages ./packages
Add-Type $source -ReferencedAssemblies netstandard, ./packages/.../Dapper.dll
これでできたわ
お前らまじで使えねえなー
dotnet restore --packages ./packages
Add-Type $source -ReferencedAssemblies netstandard, ./packages/.../Dapper.dll
これでできたわ
お前らまじで使えねえなー
606デフォルトの名無しさん
2018/03/26(月) 07:20:39.22ID:90OCo3hj すみません。。
607デフォルトの名無しさん
2018/03/28(水) 21:08:11.49ID:rexEOFUm とあるフォルダ配下にあるテキストファイルだけ抽出して配列に格納
別のフォルダ配下にあるテキストファイルだけ抽出して配列に格納し配列同士を比較して同じファイルのみを抜き出してCompare-Objectで比較したいんですけどどうやったらできますか?
別のフォルダ配下にあるテキストファイルだけ抽出して配列に格納し配列同士を比較して同じファイルのみを抜き出してCompare-Objectで比較したいんですけどどうやったらできますか?
608デフォルトの名無しさん
2018/03/28(水) 22:43:30.34ID:WBaBvJPO >>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 }
$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 }
609デフォルトの名無しさん
2018/03/29(木) 01:53:06.95ID:0KWZ/AkQ610デフォルトの名無しさん
2018/03/29(木) 04:02:59.38ID:63+/4se6 >>608
似たようなことよくやるが、やっぱ癖が出るね
自分なら最初こうやるかな
@(
Get-ChildItem "フォルダ1" *.txt
Get-ChildItem "フォルダ2" *.txt
)|
変数あまり使いたくないし、lsは動作がUNIXとは違うから紛らわしくて
似たようなことよくやるが、やっぱ癖が出るね
自分なら最初こうやるかな
@(
Get-ChildItem "フォルダ1" *.txt
Get-ChildItem "フォルダ2" *.txt
)|
変数あまり使いたくないし、lsは動作がUNIXとは違うから紛らわしくて
611デフォルトの名無しさん
2018/03/29(木) 07:16:54.73ID:V1TivHhi612デフォルトの名無しさん
2018/03/29(木) 07:57:32.30ID:0KWZ/AkQ 1つか複数かで、オブジェクトの型が違うのか
ややこしい言語やな
ややこしい言語やな
613デフォルトの名無しさん
2018/03/29(木) 12:10:52.44ID:ZJ5ir4HC そういう細かい変な挙動がめんどくさいからC#で書いてAdd-Typeしてるわ
Linqあれば大抵の処理はPowerShellより書きやすいし読みやすい
Linqあれば大抵の処理はPowerShellより書きやすいし読みやすい
614デフォルトの名無しさん
2018/03/29(木) 21:42:00.78ID:QJhSKNI2615デフォルトの名無しさん
2018/03/29(木) 22:03:31.09ID:AdhamQsX & {
ls foo
ls bar
}
ls foo
ls bar
}
616デフォルトの名無しさん
2018/03/29(木) 22:51:24.43ID:V1TivHhi617デフォルトの名無しさん
2018/03/29(木) 22:57:06.82ID:V1TivHhi もしpowershell2ならこれなら動くんじゃないかな、試してないけど
@($a; $b) | Group-Object -Property Name | Where-Object { $_.Count -eq 2 } | Foreach-Object { $_.Name; Compare-Object -ReferenceObject $(Get-Content $_.Group[0].Fullname) -DifferenceObject $(Get-Content $_.Group[1].Fullname) | Format-Table }
@($a; $b) | Group-Object -Property Name | Where-Object { $_.Count -eq 2 } | Foreach-Object { $_.Name; Compare-Object -ReferenceObject $(Get-Content $_.Group[0].Fullname) -DifferenceObject $(Get-Content $_.Group[1].Fullname) | Format-Table }
618デフォルトの名無しさん
2018/03/29(木) 23:14:54.79ID:cCEUqbyZ >>616
バージョンこんな感じです
> $PSVersionTable
Name Value
---- -----
CLRVersion 2.0.50727.8762
BuildVersion 6.1.7601.17514
PSVersion 2.0
WSManStackVersion 2.0
PSCompatibleVersions {1.0, 2.0}
SerializationVersion 1.1.0.1
PSRemotingProtocolVersion 2.1
バージョンこんな感じです
> $PSVersionTable
Name Value
---- -----
CLRVersion 2.0.50727.8762
BuildVersion 6.1.7601.17514
PSVersion 2.0
WSManStackVersion 2.0
PSCompatibleVersions {1.0, 2.0}
SerializationVersion 1.1.0.1
PSRemotingProtocolVersion 2.1
619デフォルトの名無しさん
2018/03/29(木) 23:18:05.53ID:cCEUqbyZ >>617
やると↓
$a=Get-ChildItem "D:\test\*.*" -include *.txt,*.dat
$b=Get-ChildItem "G:\test\*.*" -include *.txt,*.dat
@($a; $b) | Group-Object -Property Name | Where-Object { $_.Count -eq 2 } | Foreach-Object { $_.Name;
ompare-Object -ReferenceObject $(Get-Content $_.Group[0].Fullname) -DifferenceObject $(Get-Content $_.Group[1].Fullname
| Format-Table }
b.txt
Compare-Object : 引数が null であるため、パラメーター 'ReferenceObject' にバインドできません。
発生場所 行:1 文字:134
+ @($a; $b) | Group-Object -Property Name | Where-Object { $_.Count -eq 2 } | Foreach-Object { $_.Name; Compare-Object
-ReferenceObject <<<< $(Get-Content $_.Group[0].Fullname) -DifferenceObject $(Get-Content $_.Group[1].Fullname) | Form
at-Table }
+ CategoryInfo : InvalidData: (:) [Compare-Object]、ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.CompareObje
ctCommand
やると↓
$a=Get-ChildItem "D:\test\*.*" -include *.txt,*.dat
$b=Get-ChildItem "G:\test\*.*" -include *.txt,*.dat
@($a; $b) | Group-Object -Property Name | Where-Object { $_.Count -eq 2 } | Foreach-Object { $_.Name;
ompare-Object -ReferenceObject $(Get-Content $_.Group[0].Fullname) -DifferenceObject $(Get-Content $_.Group[1].Fullname
| Format-Table }
b.txt
Compare-Object : 引数が null であるため、パラメーター 'ReferenceObject' にバインドできません。
発生場所 行:1 文字:134
+ @($a; $b) | Group-Object -Property Name | Where-Object { $_.Count -eq 2 } | Foreach-Object { $_.Name; Compare-Object
-ReferenceObject <<<< $(Get-Content $_.Group[0].Fullname) -DifferenceObject $(Get-Content $_.Group[1].Fullname) | Form
at-Table }
+ CategoryInfo : InvalidData: (:) [Compare-Object]、ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.CompareObje
ctCommand
620デフォルトの名無しさん
2018/03/29(木) 23:45:57.68ID:V1TivHhi それ単に空ファイルだからでしょ
621デフォルトの名無しさん
2018/03/29(木) 23:54:26.21ID:cCEUqbyZ >>620
空ファイルとの差分も比較したいっす
空ファイルとの差分も比較したいっす
622デフォルトの名無しさん
2018/03/30(金) 00:15:02.11ID:8/UdoTgk -ReferenceObject $(if ($_.Group[0].Length -eq 0) {"空ファイル"} else {Get-Content $_.Group[0].Fullname})
とかすればいい-DifferenceObjectも同様に
とかすればいい-DifferenceObjectも同様に
623デフォルトの名無しさん
2018/03/30(金) 00:55:45.74ID:1oIUHR4g624デフォルトの名無しさん
2018/03/30(金) 12:24:41.58ID:87KFZNYL PSVersion 2.0 って、古いな
漏れは、Windows10 で、5.1
漏れは、Windows10 で、5.1
625デフォルトの名無しさん
2018/03/30(金) 12:46:33.65ID:MnRWcQoL626デフォルトの名無しさん
2018/03/30(金) 13:31:52.36ID:CA1T1+Qn むしろwin10なのに5.1は古い
6.01入れちまえ
6.01入れちまえ
627デフォルトの名無しさん
2018/03/30(金) 15:57:34.95ID:BIk3pBCX 標準で入ってるから使うんであって
わざわざ入れるなんて許されない
それがPowershellの掟
わざわざ入れるなんて許されない
それがPowershellの掟
628デフォルトの名無しさん
2018/03/30(金) 16:03:03.73ID:GA8gSqY/ 常時最新版は入れるけど開発は2.0で
629デフォルトの名無しさん
2018/03/30(金) 23:23:41.80ID:v3STFQKk 個人で使う分にはいいんだろうけどね
630デフォルトの名無しさん
2018/03/31(土) 09:12:34.80ID:9aphfiP0 2.0でも問題ないように勉強しつつ、案件が始まったら最新版のインストールを駄目元でお願いする感じ
631デフォルトの名無しさん
2018/03/31(土) 09:41:50.71ID:PackIPAm632デフォルトの名無しさん
2018/03/31(土) 20:24:07.76ID:xiXxh7KM ファイルの最後の文字のみ読み込んで
例えば最後の文字が
〇〇てすと
だったら
てすと
に置換して元から"てすと"だったそのままにしたいんだけどどうすればできますか?
ただし最終行が"てすと"じゃなかった場合は"てすと"を追記したいです
個人的にはループ処理で最終行から読み込んで意図した文字列なら置換って事がやれればいいと思ってます
※バージョンは2.0でお願いします!
例えば最後の文字が
〇〇てすと
だったら
てすと
に置換して元から"てすと"だったそのままにしたいんだけどどうすればできますか?
ただし最終行が"てすと"じゃなかった場合は"てすと"を追記したいです
個人的にはループ処理で最終行から読み込んで意図した文字列なら置換って事がやれればいいと思ってます
※バージョンは2.0でお願いします!
633デフォルトの名無しさん
2018/03/31(土) 23:42:23.39ID:ZBdPbw02 Ruby で作った
text = File.read ARGV[0] # 引数はファイル名
ary = []
# 文字列を1行ずつ、配列に入れる
text.each_line{ |line| ary << line }
p ary
# 戻り値は、置換が行われたときはレシーバ自身、置換されなかったときはnil
if ary[-1].sub!(/〇〇てすと$/, 'てすと')
# 処理なし。レシーバ自身を変更する
elsif /てすと$/ !~ ary[-1] # てすと で終わらない
ary[-1] += 'てすと'
else
return
end
p ary[-1]
File.write(ARGV[0], ary.join)
text = File.read ARGV[0] # 引数はファイル名
ary = []
# 文字列を1行ずつ、配列に入れる
text.each_line{ |line| ary << line }
p ary
# 戻り値は、置換が行われたときはレシーバ自身、置換されなかったときはnil
if ary[-1].sub!(/〇〇てすと$/, 'てすと')
# 処理なし。レシーバ自身を変更する
elsif /てすと$/ !~ ary[-1] # てすと で終わらない
ary[-1] += 'てすと'
else
return
end
p ary[-1]
File.write(ARGV[0], ary.join)
634デフォルトの名無しさん
2018/03/31(土) 23:55:40.86ID:jgzyYqDp >>633
ここPowershellスレなんだが…
ここPowershellスレなんだが…
635デフォルトの名無しさん
2018/04/01(日) 00:05:46.07ID:QUrQa6Zt >632をなんとなく作ってみたんですけど、
最後に出力された文字列だけを置換しての部分がうまくいかない
置換自体は出来るんだけどその部分だけ文字列に書き込む方法が分からん。。。
(Get-Content D:\test\a.txt)[(Get-Content D:\test\a.txt).length..0] | Foreach-Object {
if( $_.length ){
if(!($_ -like "*てすと*")){
Add-Content -Path D:\test\a.txt -Value "てすと"
break
}
$_ -replace ".*てすと.*", "てすと"
break}
}
最後に出力された文字列だけを置換しての部分がうまくいかない
置換自体は出来るんだけどその部分だけ文字列に書き込む方法が分からん。。。
(Get-Content D:\test\a.txt)[(Get-Content D:\test\a.txt).length..0] | Foreach-Object {
if( $_.length ){
if(!($_ -like "*てすと*")){
Add-Content -Path D:\test\a.txt -Value "てすと"
break
}
$_ -replace ".*てすと.*", "てすと"
break}
}
636633
2018/04/01(日) 00:36:26.53ID:ECJY99tL >その部分だけ、文字列に書き込む方法が分からん
Ruby でも、ファイルを読み書き両用で開くと、
現在のシーク位置を、あれこれ移動しないといけないから、非常にややこしい。
シーク位置を変数に入れておいて、あれこれ考えるのは、ややこしい
だから、テキスト全体を改行区切りの配列に入れて、最後の行だけを変更してから、
全部を書き込む方が簡単
633 では、そうしている
Ruby でも、ファイルを読み書き両用で開くと、
現在のシーク位置を、あれこれ移動しないといけないから、非常にややこしい。
シーク位置を変数に入れておいて、あれこれ考えるのは、ややこしい
だから、テキスト全体を改行区切りの配列に入れて、最後の行だけを変更してから、
全部を書き込む方が簡単
633 では、そうしている
637デフォルトの名無しさん
2018/04/01(日) 01:17:13.74ID:XTr+hbom 趣旨に合っているかな?
$list=Get-Content sample.txt
$text="てすと"
foreach($line in $list){
if([string]::IsNullOrEmpty($line)){$line=$text}
$str=$line.Substring($line.length-3)
if($str -eq $text){ $newline=$str}
else{ $newline=$line }
$newline
}
$list=Get-Content sample.txt
$text="てすと"
foreach($line in $list){
if([string]::IsNullOrEmpty($line)){$line=$text}
$str=$line.Substring($line.length-3)
if($str -eq $text){ $newline=$str}
else{ $newline=$line }
$newline
}
638637
2018/04/01(日) 01:18:30.22ID:XTr+hbom 最後の行についてわすれてた
639637
2018/04/01(日) 01:28:26.15ID:XTr+hbom 再度
$list=Get-Content test.txt
$text="てすと"
foreach($line in $list){
if([string]::IsNullOrEmpty($line)){$line=$text}
$str=$line.Substring($line.length-3)
if($str -eq $text){ $newline=$str}
else{ $newline=$line }
$newline
}
if($str -ne $text){$text}
$list=Get-Content test.txt
$text="てすと"
foreach($line in $list){
if([string]::IsNullOrEmpty($line)){$line=$text}
$str=$line.Substring($line.length-3)
if($str -eq $text){ $newline=$str}
else{ $newline=$line }
$newline
}
if($str -ne $text){$text}
640デフォルトの名無しさん
2018/04/01(日) 01:34:17.86ID:VsRAmkXY ぱわーしぇる風にパイプかつメモリ最小で作ってほしーなんつって
641デフォルトの名無しさん
2018/04/01(日) 01:37:20.38ID:VsRAmkXY つーかバッチファイルスレで似たような質問してたアホだなこいつ
642637
2018/04/01(日) 02:13:27.25ID:XTr+hbom パイプよりこのほうがずっと高速なもんで
643デフォルトの名無しさん
2018/04/01(日) 02:32:32.46ID:QUrQa6Zt >>639
いいんだけどこれだと空白行全部"てすと"になっちゃてね?
いいんだけどこれだと空白行全部"てすと"になっちゃてね?
644639
2018/04/01(日) 02:44:04.47ID:XTr+hbom そうしてる。
空白行は空白のままでよかったんだ
じゃIFのところだけ書き換え
$list=Get-Content test.txt
$text="てすと"
foreach($line in $list){
if(-NOT [string]::IsNullOrEmpty($line)){
$str=$line.Substring($line.length-3)}
if($str -eq $text){ $newline=$str}
else{ $newline=$line }
$newline
}
if($str -ne $text){$text}
空白行は空白のままでよかったんだ
じゃIFのところだけ書き換え
$list=Get-Content test.txt
$text="てすと"
foreach($line in $list){
if(-NOT [string]::IsNullOrEmpty($line)){
$str=$line.Substring($line.length-3)}
if($str -eq $text){ $newline=$str}
else{ $newline=$line }
$newline
}
if($str -ne $text){$text}
645デフォルトの名無しさん
2018/04/01(日) 02:46:44.02ID:XTr+hbom 考えたらこれだと文字数が3文字未満だとエラーになるな
ねむいが・・書き換えてみるかな
ねむいが・・書き換えてみるかな
646639
2018/04/01(日) 02:54:07.64ID:XTr+hbom 今度はどうだろう
$list=Get-Content test.txt
$text="てすと"
foreach($line in $list){
$newline=$line
if($line.length -gt 2){
$str=$line.Substring($line.length-3)
if($str -eq $text){ $newline=$str}
}
$newline
}
if($str -ne $text){$text}
$list=Get-Content test.txt
$text="てすと"
foreach($line in $list){
$newline=$line
if($line.length -gt 2){
$str=$line.Substring($line.length-3)
if($str -eq $text){ $newline=$str}
}
$newline
}
if($str -ne $text){$text}
647デフォルトの名無しさん
2018/04/01(日) 03:12:47.24ID:QUrQa6Zt >>646
最終行だけてすとじゃなくてその上にてすとの文字列が有るとそのあと全部てすとになっちゃうね
最終行だけてすとじゃなくてその上にてすとの文字列が有るとそのあと全部てすとになっちゃうね
648デフォルトの名無しさん
2018/04/01(日) 03:38:49.54ID:IR/E13YL こんなもんかね
psv2.0に配列のcountあったっけか
$file = "test.txt"
$text = "てすと"
,@(Get-Content $file)|%{
foreach($i in 0..($_.count-1)){
if($i -eq ($_.count-1)){
if($_[$i] -like "*$text"){
$text
}else{
$_[$i];$text
}
}else{
$_[$i]
}
}
}|Out-File $file
psv2.0に配列のcountあったっけか
$file = "test.txt"
$text = "てすと"
,@(Get-Content $file)|%{
foreach($i in 0..($_.count-1)){
if($i -eq ($_.count-1)){
if($_[$i] -like "*$text"){
$text
}else{
$_[$i];$text
}
}else{
$_[$i]
}
}
}|Out-File $file
649デフォルトの名無しさん
2018/04/01(日) 07:43:52.97ID:dufOVYHg >>641
あっちは、「最終行」じゃなくて「空行を除く最終行」だったからちょっと面倒だ
あっちは、「最終行」じゃなくて「空行を除く最終行」だったからちょっと面倒だ
650639
2018/04/01(日) 07:45:20.17ID:UUJ9t7Bj■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★3 [ぐれ★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- 現役猟師・東出昌大、クマ被害続出も過熱する報道に「クマはそんな危ないもんじゃない」理由語る [muffin★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
