PowerShell -Part 5

■ このスレッドは過去ログ倉庫に格納されています
2021/03/18(木) 00:29:52.04ID:/MpReTiX
前スレ
PowerShell -Part 4
https://mevius.5ch.net/test/read.cgi/tech/1577862511/

次スレは>>980が立ててね!!
2021/03/19(金) 09:44:27.09ID:ubz8QMhD
Select-Objectでプロパティを取り出す際に@{name=〜;expession={〜}}
って指定方法があると思いますが、
@data=@{"key1"=@(1,2);"key2"=@(3,4)}
という配列を値に持つハッシュ@dataから
1,3;2,4
と言う風にデータを取り出したいのですが
(各配列の要素0から順番に)

@data|Select-Object @{name="out";expession={ ($_.key1 + "," + $_.key2) -join ";"}}
だと
1;2;,;3;4
になってしまいます。

1,3;2,4
と取り出すにはどうすれば良いでしょうか?
2021/03/19(金) 09:45:14.92ID:ubz8QMhD
訂正
@data は $data の間違いです。
2021/03/19(金) 14:52:27.90ID:z8FPp2cZ
$data|Select-Object @{name="out";expression={ ($_.key1 -join ",") + ";" + ($_.key2 -join ",") }}


配列の加算
https://docs.microsoft.com/ja-jp/powershell/scripting/learn/deep-dives/everything-about-arrays#array-addition
2021/03/19(金) 17:10:06.64ID:Lmt+5Mde
>>16
う〜ん。これだと
1,2;3,4
と出力されてしまいます。

説明が悪かったです。
配列毎に順番に出力ではなく、
全配列の若い要素から順番に出力です。

配列Aの要素0,配列Bの要素0;
配列Aの要素1,配列Bの要素1;
配列Aの要素2,配列Bの要素2;



と言うふうに、
$dataの場合は
1,3;2,4
と出力したいのです。
2021/03/19(金) 17:23:02.60ID:e41Lj/Gw
スクリプト内の、Start-Processで起動したプロセスが、「別の」プロセスを起動します。
この「別の」プロセスのPIDを取るに、確実性のある方法ってありますでしょうか。

具体的に申し上げますと、TeratTermマクロの実行ファイル(以下、ttpmacro.exe)を、Start-Processで呼び出すと
ttpmacro.exeが、Teraterm本体を呼び出します。

以下の、@でttpmacro.exeのPIDは取れるのですが、ttpmacro.exeが呼び出した
Teraterm本体のPIDは取れません。

現状Aの方法、ttpmacro.exeをStart-Processで起動→3秒待ち(起動待ち)→Get-Processで最新のTeraterm本体のPIDを取る
で間に合ってはいるのですが、不確実性があります。

これの対処に、確実性のある方法があったら教えてください。

Get-ProcessのStart-Timeが〇秒以内の場合〜というのも考えたんですが、
やっぱり不確実があるのでまだ導入はしてません。

よろしくお願いいたします。

以下ソースコード一部抜粋しました。ご参照ください。

$ttl_macro=Teratemマクロのファイルパス
$ttpm_bin="C:\Program Files (x86)\teraterm\ttpmacro.exe"

@$ttl_pid=(Start-Process -PassThru -FilePath $ttpm_bin -ArgumentList "/V $ttl_macro $log_full_path")

sleep 3 #Teraterm本体の起動待ち用。

A$ttp_pid=((Get-Process -name "ttermpro") | Select-Object id,StartTime,name | Sort-Object -Property Starttime | Select-Object -Last 1)
2021/03/19(金) 17:37:54.61ID:jH8qf1vo
>>17
Keyは固定でいいのね
なら
($data.Key1.GetLowerBound(0) .. $data.Key1.GetUpperBound(0) | %{ $data.Key1[$_], $data.Key2[$_] -join ',' }) -join ';'
でいいかと
2021/03/19(金) 17:48:29.69ID:eKviOhZZ
>>19
て、天才か…!?
ありがとうございます。m(_ _)m

しかし、書いてる内容がわからん過ぎて自分で応用出来そうにないな…
2021/03/19(金) 18:11:41.22ID:jH8qf1vo
>>20
要するに配列の添字を0, 1, 2, ...のように変えながら
$data.Key1[添字], $data.Key2[添字] -join ','
を実行してそれらを ';' で繋いでるだけ
2021/03/19(金) 18:53:58.30ID:qinkf1Gp
>>18
そういう場合小プロセスのppidを調べる
下のコードは未確認
Get-CimInstance Win32_Process -Filter "ParentProcessId = $pid"
2021/03/20(土) 01:13:04.71ID:jX8BSYxa
>>22
ありがとうございます。
超絶ばっちり拾えました。

Get-CimInstance
これいろいろ拾えるみたいですんごい便利そうですね。
ありがとうございました。
2021/03/20(土) 14:13:24.65ID:n5hjp+Ey
いえいえ
25デフォルトの名無しさん
垢版 |
2021/03/20(土) 14:57:52.11ID:Af+N2/eO
Windows Terminal について質問、コンソールウィンドウをキーボード操作で編集モードにする方法ってある?
PowerShellでできそうかな?
2021/03/20(土) 15:52:35.96ID:IyzEzHor
>>14
Ruby で作った

hash = { 1 => [ 11, 12, 13 ], 2 => [ 21, 22, 23 ] }

# zip で、行列の転置・transpose で、
# 2次元配列・[[11, 21], [12, 22], [13, 23]]

result = hash[ 1 ].zip( hash[ 2 ] ).
map{ |ary| ary.join( "," ) }.join( ";" )

puts result #=> 11,21;12,22;13,23
2021/03/21(日) 09:27:35.68ID:smBpkDl7
サーバ運用などにpowershellのおすすめの参考書教えてください
プログラムの基礎的な内容はおさえていて、vbsで簡単なスクリプトは作れるレベルです。
2021/03/21(日) 09:58:35.32ID:+Ri9vB82
今のPowerShellって実は既に非推奨なんで、MSの方針に従うなら今出ている参考書はほとんどお勧めできないってことになる
最新のPowerShell Coreについてはまあ参考書はほとんどなくて、ググってみりゃわかるがお勧め以前に参考書は国内では一つしか出ていないから選択の余地はない
2021/03/21(日) 10:31:27.07ID:Duyg5pmm
pwsh(core)ってやつ
チュートリアルならMSのサイト、get-helpでunix系のman相当のマニュアル読める
結構快適だよ
2021/03/21(日) 11:20:17.33ID:zQZFaxjB
でもわざわざpsの最新版入れ直す所なんて希だから知ってて損はない
2021/03/21(日) 14:34:20.67ID:Vq6bDiDx
Windows PowerShell実践システム管理ガイド 第3版
https://shop.nikkeibp.co.jp/front/commodity/0000/P53610/
Office 365管理者のための逆引きPowerShellハンドブック
https://www.nikkeibp.co.jp/atclpubmkt/book/18/P53740/
ネットワーク管理に使うWMI―PowerShellによるWindowsマシン管理
https://www.cutt.co.jp/book/978-4-87783-363-3.html
2021/03/22(月) 08:28:30.57ID:4wth7cze
ありがとうございます
今過渡期なんですね
Windows Server2012R2とかまだ使っているので
coreはまだ早い気がしました。
2021/03/22(月) 14:44:54.86ID:SMRpwF7a
PowerShellによるWindowsサーバ管理術
https://www.sbcr.jp/product/4797350180/
2021/03/23(火) 08:58:24.17ID:8+XYsK7R
いまだに関数の書き方が覚束ない
制約みたいなやつ
2021/03/23(火) 09:22:40.57ID:JJxzU/30
基本知識はPowerShell7系とWindows PowerShell(Ver5.1)は一緒だから若干古い書籍でも役に立つ
PowerShell6以降の機能は別で勉強すればいい
それにPowerShell7で5系との互換性はかなり良いから上記資料で役に立ちそう
過渡期でも勉強しといて損は無い
2021/03/23(火) 13:24:21.91ID:5uqNZIW5
>>34
他人の作ってくれた関数をコピペして、少しずつ変えながら色々試せばいい
2021/03/24(水) 19:11:26.80ID:uucEMUEW
Get-ChildItemで得た音声ファイルのオブジェクトに
  Get-ChildItemが返したオブジェクト
  ├Name(ファイル名)
  ├FullName(フルパス名)
   :
  └Audio(追加の音声プロパティオブジェクト)
   ├Channels(2とか6とか)
   ├SampleRate(44100とか96000とか)
    :
って感じで音声プロパティを追加して
  Get-ChildItem audio.flac | Add-AudioProp | Format-Table -Property Name や
  (Get-ChildItem audio.flac | Add-AudioProp).Audio | Format-Table -Property SampleRate,Channels
なんかはうまく行くんだけど
  Get-ChildItem audio.flac | Add-AudioProp | Format-Table -Property Name,SampleRate
みたいにオブジェクトをまたがる表示ができない。どうすりゃいいん(´・ω・`)
追加の音声プロパティをName,FullNameなんかとベタに並べるしかないんですかね
2021/03/24(水) 21:35:32.59ID:ilsWDePV
Get-ChildItem audio.flac | Add-AudioProp | Format-Table -Property Name,@{n="SampleRate";e={$_.Audio.SampleRate}}
2021/03/25(木) 02:25:42.71ID:4SLhQZZk
>>38
バッチリです!ヘルプにある
> 集計プロパティを作成するには、ハッシュ テーブルを使用します。有効なキーは次のとおりです。
ってこれの事だったのかぁ。nとかeってNameやExpressionの頭文字ですよね。頭1文字でもいいのか…
力技で一オブジェクトに集めるパイプ関数挟んでしのいでたけど取り外す事ができました
2021/03/25(木) 08:55:03.92ID:xal9z6Jt
About calculated properties
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_calculated_properties

The hashtable keys need not be spelled out as long as the specified name prefix is unambiguous.
For example, n can be used in lieu of Name and e can be used in lieu of Expression.
2021/03/25(木) 09:34:11.49ID:Ci3DTkl1
>>38
それって最後は
ft Name,Audio.SampleRate
じゃだめなの?
省略表現て意味じゃなくてAudio.SampleRateプロパティでなら取得出来るって意味で
2021/03/25(木) 18:33:30.59ID:4SLhQZZk
>>41
Audio.SampleRate ←値が空。"Audio.SampleRate"って名前のプロパティ探そうとして失敗か
Audio[SampleRate]やAudio["SampleRate"] ←値どころか項目名すら表に出てこない
$_下にないプロパティはハッシュテーブルで名前(任意のラベル名)と値を定義しないとダメっぽい
2021/03/25(木) 19:19:25.64ID:14yHEEO8
へー
2021/03/26(金) 17:33:31.93ID:4XawFn4z
外部コマンドの標準入力にバイナリファイル渡したいけどPowerShell直接はムリ?
2021/03/26(金) 20:10:55.77ID:yyPdQtcN
標準入力を受ける側が対応してればできるんじゃね
2021/03/26(金) 20:24:11.39ID:4XawFn4z
コマンドは対応してるけどPowerShellが受け付けてくれない

PowerShell> sox --info - < .\audio.flac
演算子 '<' は、今後の使用のために予約されています。

PowerShell> Invoke-Expression "sox --info - < .\audio.flac"
Invoke-Expression : 演算子 '<' は、今後の使用のために予約されています。

PowerShell> Get-Content .\audio.flac | sox --info -
(返ってこない。メモリ消費が物凄い事に。Ctrl+Cでは終われる。)

PowerShell> cmd /c sox --info - < .\audio.flac
演算子 '<' は、今後の使用のために予約されています。

PowerShell> sox --info - `< .\audio.flac
(外部コマンドから見たら"<"と".\audio.flac"の引数2つで標準入力にならない)

PowerShell> cmd /c sox --info - `< .\audio.flac
PowerShell> cmd /c "sox --info - < .\audio.flac"
→OK
2021/03/26(金) 20:43:07.66ID:CR/1QuGC
PowerShell関係なく、そもそも標準入出力ってバイナリデータ扱えるものなの?
2021/03/26(金) 20:45:38.66ID:MahXm1Ia
Start-Process -RedirectStandardInputでなんとかなんじゃね
2021/03/26(金) 21:15:57.38ID:MahXm1Ia
こんな感じか?試せる環境がないので分からん
Start-Process sox -ArgumentList "--info" -RedirectStandardInput ".\audio.flac"
2021/03/26(金) 21:18:29.13ID:SIEsHqNB
>>46
たまには頑張って調べてみた。

Get-Content .\0321.wav | sox --info -

soxコマンドはパス通してから、これで行けた。
2021/03/26(金) 21:22:13.21ID:SIEsHqNB
>>50
ダメだ、イケてない・・・
正しくわたってない、無かったことにしてください。
ごめんなさい。調子ぶっこきました。
2021/03/26(金) 21:27:33.53ID:dswi0/Vv
>>47
扱える
2021/03/26(金) 23:53:54.40ID:4XawFn4z
>>49
Start-Process sox -ArgumentList "--info","-" -RedirectStandardInput .\audio.flac
で実行できた。ただ、これだと別ウィンドウで実行されて(-Waitを付けても)すぐ消える
-NoNewWindow付けるとコンソール出力されて直接実行の目的は果たせた。ありがとう

ただ、別プロセスのせいか$capture = Start-Process .(ryで出力キャプチャできない
-RedirectStandardOutputでファイル出力はできるけど
出力キャプチャは今んとこcmd経由しか思いつかないな・・・

>>51
Get-Contentはファイル読んでPSオブジェクト作るからwavみたいな巨大ファイル喰わせると
消費メモリがとんでもない事になってよろしくないみたい。
command1 | comannd2でパイプで繋ぐのもそうなのかも(?)
PowerShell使い始めたばかりでまだ仕組みわかってないのでアレですが
2021/03/27(土) 09:30:15.39ID:9NUR6gaS
パワーシェルとWindowsバッチってどう違うの?
2021/03/27(土) 09:34:24.56ID:cvT0SSdW
異なるスクリプト言語
2021/03/27(土) 10:40:57.10ID:TlGVFU3L
PowerShellはシェル
バッチはコマンドを連続して実行すること
PowerShell上でバッチを動かすことも可能
2021/03/27(土) 20:22:03.71ID:uSYmOJju
powershellは起動時のロードがクソ遅いからログインスクリプトとかで迂闊に使えない
vbsとバッチは相変わらず超速
58デフォルトの名無しさん
垢版 |
2021/03/27(土) 21:16:23.22ID:17oRwajB
1000台規模のネットブートシステムでスタートアップ・ログオンスクリプト共々PowerShellで組んでるけど遅いときなんて一度も無いな
PowerShellの起動が遅いと感じたのはWindows7の頃が最後だな
2021/03/27(土) 21:51:02.28ID:XCgMDSTR
そりゃそんなんじゃ起動の遅さなんて気にならんだろ。
2021/03/27(土) 21:52:07.31ID:c8B2TB9l
遅い(ストレージがHDD)
2021/03/28(日) 09:17:08.07ID:bwt8R5Sf
>>53
PowerShell Teamのブログに今月こんなのが出た

PowerShell Team 2021 Investments
https://devblogs.microsoft.com/powershell/powershell-team-2021-investments/

この中に

Improve native command experience
One of the goals of PowerShell 7.1 was to improve the shell experience. This includes using native commands within PowerShell more intuitively like other shells.

って節があるのだけど、そこで挙げてる3項目の一つが

PowerShell currently treats all output from native commands as text. This means that binary output from commands is converted to text, resulting in data loss, even if the intent is to redirect that output to a file or another command that accepts the binary output.

バイナリ出力が扱えるようになればバイナリ入力もできるようになるだろう
もしかすると年内に実現するかもしれない

やっと他のシェルを経由しなくてもすむようになる
それにしても今頃こんなところに手を入れるなんて遅すぎるとしか言いようがない
2021/03/28(日) 11:25:17.75ID:6r1EOw6A
カレントディレクトリにあるスクリプトファイルを
フルパスでなくファイル名だけ指定しても実行できないのはどうしてでしょうか?
2021/03/28(日) 11:35:58.09ID:WPyWLlG4
セキュリティ上の配慮だと初期バージョンの頃から明言されていた
2021/03/28(日) 11:58:30.02ID:G6KSiarP
linuxやって検索パスにカレントディレクトリ"."を入れてないと実行出来へんので違和感無し。

検索パスにカレントディレクトリを含めるのはセキュリティ上非推奨やしな。
2021/03/28(日) 12:14:42.01ID:6r1EOw6A
ありがとう

なんとかマイクロソフトのページ検索できた
確かにセキュリティの機能としてそうなってるって書いてた
2021/03/28(日) 12:24:21.92ID:qLGWMSxC
まぁフルパスやなくて相対パスでええしな。
2021/03/28(日) 12:29:47.73ID:wpKLokvI
>>58
> 1000台規模のネットブートシステム

これってWindowsをディスクレスでネットワークブートできるってこと?
2021/03/28(日) 14:06:49.10ID:NjmNZXxg
#!/usr/bin/env ruby

puts RUBY_VERSION #=> 2.6.6

Linux でも、こういう内容の、a.rb ファイルを作って、
a.rb と実行してもエラー。
そもそも、bash で入力補完もできないし

./a.rb なら実行できるし、
./a と打っても、入力補完も働く

シバンに、/usr/bin/ruby ではなく、env を使っているのは、
anyenv/rbenv で、複数のバージョンを切り替えているため、
/usr/bin/ruby は存在しない
2021/03/28(日) 15:12:05.97ID:xIH5FjVn
PowerShellだろうがbashだろうがzshだろうがtcshだろうが
コマンドの検索パスに . が入っているかどうかだけの問題
入っていればカレントディレクトリの実行ファイルがパスなしで動く
PowerShellの場合でも$env:PATHに入れてやれば動く
入ってなくても動くcmd.exeとかcommand.comが特殊なだけ
2021/03/29(月) 00:14:19.86ID:AC49a7XE
$ping_result=(Test-Connection -count 2 8.8.8.8)
$ping_result #@

Source Destination IPV4Address IPV6Address Bytes Time(ms)
------ ----------- ----------- ----------- ----- --------
DESKTOP-E1... 8.8.8.8 8.8.4.4 32 3
DESKTOP-E1... 8.8.8.8 8.8.4.4 32 3

$proc_result=(Get-Process)
$proc_result #A

Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
547 32 19840 10308 2.72 11144 1 ApplicationFrameHost
123 8 1564 1552 3404 0 armsvc

@とAの後ろに、| select-objectを付けると

 @は、TAB補完で IPV4Address、 IPV6Address だけが出てきます。
 Aは、Handles〜ProcessNameまで全部出てきます。

Get-memberしても、列タイトルと名前が一致しません。
例えば、$ping_resultのTime(ms) はReplyTimesという名前で値が入ってます

ほかのコマンドでもちらちらこういう、「コマンドレット実行したときに表示されるタイトルと、実際に.プロパティ名で取る際の名前が違う」
というのがあります。こういう違いって何か明確な区分けがあるんでしょうか?よろしくお願いいたします。
2021/03/29(月) 14:41:37.92ID:+vuzzbeH
出力の仕様は書式設定ファイルで定義されている
ファイルの中では表示したいプロパティの名前を指定してもいいし、結果を計算するスクリプトブロックを指定してもいい

about_Format.ps1xml
https://docs.microsoft.com/ja-jp/previous-versions/windows/powershell-scripting/hh847831(v=wps.640)
2021/03/30(火) 23:15:43.59ID:AnfR1yyf
無限ループにして走らせておきたいスクリプトがあって
コマンドプロンプトの画面で実行させてるけど邪魔
見えないようにして、かつ終了もさせられるようにするにはどうしたらいい?
2021/03/31(水) 00:36:37.55ID:bnFDknJn
よからぬ事に使う目的にしか見えない
2021/03/31(水) 09:05:46.55ID:Y3PcTBvP
>>72
タスクで別ユーザで実行させとけばいいんじゃね
2021/03/31(水) 09:38:27.22ID:YEibHbKm
ウィンドウの位置とサイズを固定させる用途だから、ユーザが自分でないと
2021/03/31(水) 10:00:59.54ID:gA7tKZjY
仮想デスクトップ分ければ?
2021/03/31(水) 10:10:11.65ID:YEibHbKm
仮想デスクトップでばっちり
2021/03/31(水) 15:09:07.56ID:GYCr8oLd
タスクトレイに常駐させるのがスマートだけど
それのイベント拾う非表示のウィンドウが必要なんだよな
作り方は他の言語と同じだから全省略するね
2021/03/31(水) 15:21:44.88ID:AtIsL56M
pwsh --helpで出てくる公知なことを隠す必要なんてないと思うが…

スクリプトの実行ポリシーはガッチガチだし、ドキュメントどころか--helpすら読まない奴はスクリプトキディにもなれんだろうから安心
2021/03/31(水) 23:05:55.25ID:M9w8Znx+
[System.DateTime]::Now.kind

@これを読むとすると
system.date.timeクラスの、nowメソッドのkindプロパティでいいでしょうか。
違ってたら読み方?教えてください

Aこういうのってどっかに一覧があるんでしょうか

Bこういうのを使うとPowershellらしい、新しい書き方になると思ってるんですが
実際の所はどうなんでしょうか?使う人のほうが少ないんしょうか。
例えば、[System.DateTime]::Nowであれば、Get-Date と同じものなので、
わざわざこういう書き方をしないで、コマンドレットの読みやすい表記を使う人のほうが多いんでしょうか
2021/03/31(水) 23:43:46.86ID:mCZD0Ait
>>80
System名前空間のDateTime構造体の静的Nowプロパティが返す(System.DateTime型の)オブジェクトのKindプロパティかな

https://docs.microsoft.com/ja-jp/dotnet/api/system.datetime
2021/03/31(水) 23:59:39.51ID:XczoOgFc
構造体ってなんぞ?
2021/04/01(木) 00:23:39.07ID:PSFjtGJo
>>82
プロパティのみのクラスオブジェクトなんじゃね
2021/04/01(木) 00:38:41.91ID:u/4v0CTW
なるほどなるほど
2021/04/01(木) 04:57:15.84ID:xXKhkzDq
>>82-84
構造体にもメソッドあるぞ
クラスは参照型、構造体は値型
詳しくはWebで ⇒ https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/
86デフォルトの名無しさん
垢版 |
2021/04/01(木) 07:41:37.81ID:klwu+MWY
powershellのタブ補完はディレクトリ末尾にバックスラッシュを付与するので、多くのWin32アプリが引数をうまく受け取れないってのは既知?
2021/04/01(木) 19:32:54.94ID:T6HNdWih
スラッシュならともかくバックスラッシュなら処理できるんじゃね
2021/04/01(木) 20:43:50.58ID:M+/UvE/I
ディレクトリの場合は末尾にバックスラッシュ補完してくれるほうがありがたいが、
アプリは引数のディレクトリ末尾にバックスラッシュあるとうまく受け取れないん?
2021/04/01(木) 20:45:21.44ID:SMpNE7HF
あってもなくても正しく動くように全員が実装している必要がある
2021/04/03(土) 02:27:37.45ID:KxHmdFnt
職場でPowerShell書いたらバッチでいいと言われたよ
2021/04/03(土) 05:39:47.61ID:1anAZoL9
設定しないと動かないからな
92デフォルトの名無しさん
垢版 |
2021/04/03(土) 08:07:25.49ID:EzmFJzRe
新しく作るスクリプトに関してはもうバッチ使わないで欲しいよな
2021/04/03(土) 08:10:54.91ID:GvC+rDGr
標準ではps1の実行権限ついてないから配布する場合はちょっと面倒なんだよね
2021/04/03(土) 09:26:04.03ID:inQlliUt
他人に使ってもらう必要がある奴はバッチにPowerShellを埋め込んで配布してる
https://www.pg-fl.jp/program/tips/ps1bat2.htm
2021/04/03(土) 10:15:30.26ID:1anAZoL9
ウィルスのような手口
2021/04/03(土) 10:55:18.98ID:sC0R2LUF
バッチだと悪さができないとでも?w
2021/04/03(土) 11:16:34.59ID:zA7glofo
1行batとの2ファイル構成が楽でいい
先人はよくもbatなんかを使い続けてきたものよな
2021/04/03(土) 12:16:39.84ID:GvC+rDGr
>>94
その方法管理者権限必要だろ
2021/04/03(土) 12:35:34.20ID:1anAZoL9
インストールマニュアルとセットにして、正攻法で使って貰うのが一番だな
2021/04/03(土) 13:31:57.32ID:vSOTAguS
>>99
ガチガチに管理されたPCには無理な方法
2021/04/03(土) 13:47:46.96ID:1anAZoL9
ネット経由で持ってきたファイルだと、batファイルも実行不可能なのな
よくできてる
2021/04/03(土) 13:55:06.60ID:PDe42KrN
むしろガチガチに管理してくれれば個別にスクリプト実行なんてしなくて済むのに
2021/04/03(土) 14:11:40.41ID:Bi+zSKdB
batで済む事はbatが無難
済まない事はps1よりもexeが無難
2021/04/03(土) 14:26:34.09ID:vSOTAguS
>>101
ZoneIDのセキュリティブロックのことなら、イントラネットや信頼されたサイトだと問題ない
2021/04/03(土) 14:32:21.88ID:1anAZoL9
自分の別のPCからteamsのファイル共有で持ってきただけなんだけどね
2021/04/03(土) 15:18:17.29ID:sC0R2LUF
>>98
ExecutionPolicy の話?
なら、-Command 使ってるから要らんよ
他にもバイパスする方法は色々あるし
https://blog.netspi.com/15-ways-to-bypass-the-powershell-execution-policy/
107デフォルトの名無しさん
垢版 |
2021/04/03(土) 20:22:37.90ID:1+c+Mqlb
-Scope CurrentUser なら権限いらないんじゃね
2021/04/03(土) 21:42:59.31ID:pdE0Ehe0
PwerShell はファイル行数を取得しようとうっかり wc -l ファイルパス を呼ぶと延々と戻ってこない
2021/04/04(日) 14:18:40.58ID:wP1wKXuq
> Get-Command wc
Get-Command : 用語 'wc' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されま
せん。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してく
ださい。
2021/04/04(日) 14:52:39.08ID:GCV7dd01
>>108
即座にエラー出るけどな
2021/04/04(日) 15:36:10.86ID:/BDkV6c4
>>109,110
失礼。 書き間違えた。wc はGit for Windowsに付属のwc.exeのこと。
正しくは以下のとおり。
cat ファイルパス | wc -l

catが遅いのかパイプが遅いのか両方なのか。
2021/04/04(日) 15:41:20.32ID:BHN4NYpU
cygwinやmsysだとか、c:直下に入りたがるintel系のコンパイラとか、あちこちにパス通してると遅くなった気がする
ハッシュとかしてないんだろうか?する方法あったら知りたい
2021/04/04(日) 15:43:52.16ID:BHN4NYpU
とりあえずパスの先の方に移してみたら、win/unix-likeで同名コマンド結構あるので衝突気にしないならだが
2021/04/04(日) 15:45:18.85ID:/BDkV6c4
>>112
cat はcat.exeじゃなくてGet-Contentのaliasでした
wc -l ファイルパス は普通に速いからwc.exeの問題でもない
よって Get-Contentまたはパイプの問題ってことになりそう
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況