[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/19 17:42 / Filesize : 269 KB / Number-of Response : 1051
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

PowerShell -Part 3



1 名前:デフォルトの名無しさん mailto:sage [2018/10/09(火) 17:46:48.32 ID:G4IJkzod.net]
前スレ
【最強CUI】PowerShell -Part 2
mevius.5ch.net/test/read.cgi/tech/1480109402/

285 名前: mailto:sage [2018/11/27(火) 23:18:31.25 ID:X/MEoliS.net]
>>273
win7 はたぶん終了にならないと思います、win10 がクソすぎるからね

286 名前:デフォルトの名無しさん mailto:sage [2018/11/28(水) 09:58:30.52 ID:dGZ6nyrF.net]
>>280
神OS(笑)XPの時も似たような話聞いたわ

287 名前:デフォルトの名無しさん mailto:sage [2018/11/28(水) 11:20:24.48 ID:b089yY0z.net]
Win7はデフォでv2.0しか使えないからこのスレ的にはダメダメ

288 名前:デフォルトの名無しさん [2018/11/28(水) 12:31:06.61 ID:j69eTZ+j.net]
>>282
デフォルトじゃないとだめなの?

289 名前:デフォルトの名無しさん mailto:sage [2018/11/28(水) 12:57:23.83 ID:036JocE6.net]
有償で延長サポートの話が出てる以上
それ以外はバッサリ終了に決まってるでしょ

290 名前:デフォルトの名無しさん mailto:sage [2018/11/28(水) 19:59:03.72 ID:b089yY0z.net]
>>283
出先でWMF入れられないじゃん

291 名前:デフォルトの名無しさん [2018/11/28(水) 21:40:54.00 ID:e3ALQLMX.net]
>>285
なるほどね。仕事内容や立場により、いろいろあるわけね。

292 名前:デフォルトの名無しさん mailto:sage [2018/11/28(水) 21:55:44.64 ID:JxqTGA2g.net]
これが5.1だとちゃんと動かねぇ
Add-Type -As

293 名前:semblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing

function ShowInfoMain{
$counter = 0
$timerTestTick = {
$label_timer.Text = "{0} 秒" -f $counter++
}
#タイマーの初期化
$timerTest = New-Object Windows.Forms.Timer
$timerTest.Add_Tick($timerTestTick)
$timerTest.Interval = 1000
$timerTest.Enabled = $TRUE
$timerTest.Start()

#フォーム
$Form = New-Object System.Windows.Forms.Form
$Form.Size = "100,100"
$Form.StartPosition = "CenterScreen"

#タイマー
$label_timer = New-Object System.Windows.Forms.Label
$label_timer.Text = '0 秒'
$Form.Controls.Add($label_timer)

$result = $Form.Showdialog()
$timerTest.Dispose()
$Form.Dispose()
}
. ShowInfoMain
[]
[ここ壊れてます]



294 名前:デフォルトの名無しさん mailto:sage [2018/11/28(水) 23:01:00.54 ID:b5TbM/Zv.net]
$counter = 0
$label_timer = New-Object System.Windows.Forms.Label
$timerTestTick = {
$label_timer.Text = "{0} 秒" -f $script:counter++
}

295 名前:デフォルトの名無しさん mailto:sage [2018/11/28(水) 23:05:36.16 ID:b5TbM/Zv.net]
順序関係なく単純に $script:counter++にするだけでいいみたいやね

296 名前:デフォルトの名無しさん mailto:sage [2018/11/28(水) 23:27:13.98 ID:JxqTGA2g.net]
んがー
スクリプトブロックでのスコープによるものって
認識でよろしいのだろうか…
2.0だと動くのはなんでなのじゃ

297 名前:デフォルトの名無しさん mailto:sage [2018/11/28(水) 23:38:49.55 ID:JxqTGA2g.net]
>>289
ありがとうございました

初期値の宣言でもやんないとダメみたい
$script:counter = 10

298 名前:デフォルトの名無しさん mailto:sage [2018/12/02(日) 21:23:25.18 ID:u3CI+74z.net]
PowerShell 3.0での破壊的変更まとめ
https://blog.shibata.tech/entry/2018/12/01/113228

デリゲート代わりに使われるスクリプトブロックのスコープ

PowerShell 3.0からデリゲート代わりに使われるスクリプトブロックが独自のスコープを持つようになっています。
たとえば以下の様な例だとPowerShell 2.0では1を、PowerShell 3.0からは0を返す様になります。

Add-Type @"
public class Invoker
{
public static void Invoke(System.Action<int> func)
{
func(1);
}
}
"@
$a = 0
[Invoker]::Invoke({$a = 1})
$a

299 名前:デフォルトの名無しさん [2018/12/03(月) 14:13:32.11 ID:xHLM582p.net]
新しいpowershell では、Get-Clipboard で、クリップボードから文字列も取得できる!

300 名前:デフォルトの名無しさん mailto:sage [2018/12/03(月) 20:49:19.87 ID:9uCJpuZ+.net]
んなもん.NET直接呼んだ方が互換性高い

301 名前:デフォルトの名無しさん mailto:sage [2018/12/03(月) 21:32:04.89 ID:uxAfgW4c.net]
なんでそんなめんどくせーことせなあかんねん

302 名前:デフォルトの名無しさん mailto:sage [2018/12/03(月) 22:42:10.02 ID:YBAcFOR9.net]
>>295
powershellは.netのフロントエンドだから

303 名前:デフォルトの名無しさん mailto:sage [2018/12/03(月) 22:51:11.92 ID:uxAfgW4c.net]
そういう問題じゃないが・・・
支障がない場合はそんまま使うわあほくさ



304 名前:デフォルトの名無しさん mailto:sage [2018/12/04(火) 02:28:30.75 ID:Tn5NKjZ7.net]
なんで今更5.0の話してんのさ

305 名前:デフォルトの名無しさん [2018/12/04(火) 16:12:13.82 ID:eKuwOju4.net]
5ch の文章を、テキストエディタへコピペすると、
各行の先頭・末尾に、空白が付くので、これを除去したい

そこで、Ruby でプログラムを作って、
バッチファイルで、そのプログラムをダブルクリックで起動できるようにした

Windows で、クリップボード内の複数行文字列の、各行の先頭・末尾から、
連続する空白類を除去して、クリップボードに入れる

新しいpowershell では、クリップボードから文字列も取得できる

str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換

ary = str.each_line.map( &:strip )

IO.popen( 'clip', 'w:cp932' ) do | clip |
clip.print( ary.join "\n" )
end

306 名前:デフォルトの名無しさん mailto:sage [2018/12/04(火) 17:07:32.91 ID:hkRngAzE.net]
Get-Clipboardの機能は2015年からあるがどう新しいのか

307 名前:デフォルトの名無しさん mailto:sage [2018/12/04(火) 17:45:54.20 ID:xb7Yz2vd.net]
Ruby挟む意味ないじゃん?バッチも画面が目ざわりだ

308 名前:オvbsがいいよ

CreateObject("WScript.Shell").Run "powershell ""gcb | % trim | scb""", 0
[]
[ここ壊れてます]

309 名前:299 mailto:sage [2018/12/04(火) 19:47:12.62 ID:eKuwOju4.net]
VBS でも、ダブルクリックで実行できる?

310 名前:299 mailto:sage [2018/12/04(火) 19:58:07.57 ID:eKuwOju4.net]
ありがとう。
VBS でも、ダブルクリックで実行できた

ただ、黒い画面が表示された方が、わかりやすくない?
何秒ぐらい待つのか、迷う

311 名前:デフォルトの名無しさん mailto:sage [2018/12/04(火) 21:38:59.01 ID:gx9huxXd.net]
Windows文化は「黒い画面」が出るのを良しとしないのだよ

312 名前:デフォルトの名無しさん mailto:sage [2018/12/04(火) 22:20:16.69 ID:SeIDr86X.net]
>>304
そんなの一部の神経質な奴らだけ

313 名前:デフォルトの名無しさん mailto:sage [2018/12/04(火) 23:31:35.16 ID:RbfFY42H.net]
>>305
Windows 文化と言うより、業務でオツちゃん・オバちゃんに使わせるシステムの場合、
あいだに黒い画面が一瞬出ると「なにこれ?」って無用な問い合わせが入ったり、
場合によっては無理やり閉じられることもある。
fool proof の観点からは黒い画面が無いに越したことはない。



314 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 20:37:03.12 ID:x9ea9mMQ.net]
" が含まれている文字列を環境変数にいれてnet useコマンドを使うと" がエスケープされず想定通りに処理されないのですがどうエスケープすればいいんでしょうか
シングルコーテート、バックコーテート、ダブルコーテートで"をくくってもだめでした

315 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 20:49:13.75 ID:jRzepDw/.net]
何をしたくて何をしているのかさっぱりわからん

316 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 20:58:21.39 ID:x9ea9mMQ.net]
たとえばですが
$pass = test123"45
net use c:¥temp ¥¥192.168.1.10 $pass /user:testuser

とした時にパスワードに含まれている"が文字列として認識されずコマンドが実行されないのです
これをエスケープしようと
$pass = test123"""45
$pass = test123'"45
などとしてもうまくいかない感じです

317 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 20:59:28.32 ID:0urcwekh.net]
net useはpowershellのコマンドプロンプト用、powershellではNew-Psdriveコマンドレット、powershellのエスケープ文字は基本バックスラッシュ`

318 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 21:00:28.08 ID:0urcwekh.net]
WSHとごっちゃにしないでね

319 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 21:01:52.08 ID:0urcwekh.net]
1行目間違えた
net useはコマンドプロンプト用

320 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 21:03:52.33 ID:x9ea9mMQ.net]
net use ではなく new-psdriveだとバクスラでエスケープ可能なんですか?
net useだとエスケープできなかったので、ちょっとやってみまふ

321 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 21:08:28.49 ID:x9ea9mMQ.net]
ちなみにパワーシェルからcmd /cでコマンド呼び出すときのエスケープキーはバクスラと^のどちらですか?

322 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 21:10:17.22 ID:0urcwekh.net]
本件は
$pass='123"45'
とすればいいだけ

323 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 21:16:36.03 ID:x9ea9mMQ.net]
シングルコーテートでくくってもエスケープできるんですね
ありがとうございます



324 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 21:23:21.81 ID:0urcwekh.net]
エスケープじゃなくて、Powershellでは文字列は必ず'か"どっちかで囲う。生身はだめ。'で囲うのは静的リテラルの場合

325 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 21:25:50.83 ID:jRzepDw/.net]
結局環境変数は関係ないのか?
> " が含まれている文字列を環境変数にいれて

326 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 21:30:22.57 ID:0urcwekh.net]
本当の初学者で変数もコマンドプロンプトと同じ概念なんだろ

327 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 21:57:08.28 ID:x9ea9mMQ.net]
なるほどそういうルールあるんですね
プログラムやったことないんでしらんかったす
リテラルってのも意味わからんかったくらいや

328 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 22:13:06.29 ID:ix5zH8Lr.net]
start-processで終了を待たずにps1実行していくのは疑似並列処理として考えて良いのでしょうか

329 名前:デフォルトの名無しさん mailto:sage [2018/12/06(木) 07:24:42.90 ID:Ia5EZXvv.net]
「`」はバッククォートだ馬鹿者
バックスラッシュ(\)とは違う

330 名前:デフォルトの名無しさん mailto:sage [2018/12/06(木) 08:11:29.70 ID:XlsCLRxJ.net]
PowerShell Coreの宣伝始まった



331 名前:https://twitter.com/Steve_MSFT/status/1070096140010287104
(deleted an unsolicited ad)
[]
[ここ壊れてます]

332 名前:デフォルトの名無しさん mailto:sage [2018/12/06(木) 12:49:27.99 ID:r+yxrRWT.net]
標準出力に変なもん混ぜるな

333 名前:デフォルトの名無しさん [2018/12/06(木) 14:36:39.70 ID:8XTishpu.net]
>>309
間違いないよう(見間違いも)にだったらヒアストリングつかったらどうでしょう
行は増えますが、エスケープ考える必要もかいから。

@"
test123"45
"@



334 名前:デフォルトの名無しさん mailto:sage [2018/12/07(金) 00:30:59.21 ID:d/eT01GS.net]
whoamlで取得した実行結果のユーザ名を一行で環境変数に入れるにはどうすれば良いでしょうか

whoami 実行
結果 testpc¥user1
と結果が返ってくる場合、
$test = whoami.split("¥")[1]
と言ったかたちで
$testにuser1を格納させたいのですがうまく行きません

335 名前:デフォルトの名無しさん mailto:sage [2018/12/07(金) 01:04:59.92 ID:frCtIBO+.net]
括弧で囲む
(whoami)

336 名前:デフォルトの名無しさん mailto:sage [2018/12/07(金) 03:14:11.72 ID:0M/LMioQ.net]
>>326
昨日と同じ人だと思うけれどpowershellでは変数はコマンドプロンプトとは違い環境変数ではありません。

www.atmarkit.co.jp/ait/spv/0709/20/news125_2.html

337 名前:デフォルトの名無しさん mailto:sage [2018/12/07(金) 07:51:42.00 ID:QVqNOX9I.net]
読んでみたけど違いがよくわからん
型を持つってとこ?

338 名前:デフォルトの名無しさん mailto:sage [2018/12/07(金) 08:45:51.25 ID:hrhTiXxm.net]
型じゃなく範囲・スコープだよ
環境変数はOSが管理していて、ひとつ値をセットしたら同じ環境内の他プロセス(アプリ)がその値をOSに教えてもらえる
普通の変数はプロセス内で管理されていて、他プロセスは見ることが出来ない

339 名前:デフォルトの名無しさん mailto:sage [2018/12/07(金) 12:18:05.50 ID:cSzYN2du.net]
Linux では、~/.bashrc に環境変数を書けば、
自分(そのユーザーだけ)が起動するプロセスから、アクセスできる

etc/ 以下なら、PC 全体の設定になる

~/.bashrc は、Windows ではユーザー環境変数。
一方、システム環境変数は、PC 全体の設定で、すべてのユーザーで共有される

例えば、Tで始まる環境変数なら、
ls env: | Where-Object {$_.name -like "T*"}

340 名前:デフォルトの名無しさん mailto:sage [2018/12/07(金) 12:42:27.81 ID:TQVSWTyy.net]
>>326
それを実行している自分自身のユーザ名が欲しいだけなら、わざわざそんなことしなくても
$env:USERNAME
で引っ張ってこれる。

出し惜しみ、小出しにしないで前後関係も話さないと的確なアドバイスが出来ないよ。

341 名前:デフォルトの名無しさん mailto:sage [2018/12/07(金) 16:32:33.86 ID:fTv51LPz.net]
>>331
.bashrcはPowershellでは$Profileに当たると思うわ

342 名前:デフォルトの名無しさん mailto:sage [2018/12/07(金) 17:14:53.01 ID:2MiN5Gqm.net]
つーか、Credential使えよ
今時ハードコートとかありえん

343 名前:デフォルトの名無しさん mailto:sage [2018/12/07(金) 17:53:23.13 ID:TQVSWTyy.net]
>>334
だね。
どうやら ID:x9ea9mMQ ID:d/eT01GS はネットワークドライブのマウントがやりたいようだけど、
dos batch で使うべき net use や whois を PowerShell で使おうとすることに
無理がある。出来なくもないけどエレガントじゃない。

PowerShell でやるなら New-PSDrive だな。
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/new-psdrive
-Credential で任意の(自分以外の)クレデンシャルも指定できるから、
ID:x9ea9mMQ の要件も(たぶん)満たせるだろう。



344 名前:デフォルトの名無しさん mailto:sage [2018/12/07(金) 18:35:56.11 ID:fTv51LPz.net]
コマンドレット使える所を外部コマンド使うなよとは思うね
出力から値をテキスト抽出で取り出すとかもエ

345 名前:激Kントではないな

あとlsとかcatとかdirとかのコマンドエイリアス使うのも微妙に感じる
[]
[ここ壊れてます]

346 名前:デフォルトの名無しさん mailto:sage [2018/12/07(金) 19:53:53.63 ID:iBsL10N5.net]
Get-ChileItemに-Depthなんてオプションあったんだな。
うちの会社は↓みたいな整然としたフォルダ構成だから
こういうオプションあるとすごく助かるわ


プロジェクト管理
 └2018年
  └1Q
   └プロジェクトA
   └プロジェクトB
  └2Q
   └プロジェクトC
  └3Q
   └プロジェクトD
  └4Q
   └プロジェクトE
   └プロジェクトF
 └2019年
  └1Q
   └プロジェクトG

347 名前:デフォルトの名無しさん mailto:sage [2018/12/07(金) 20:47:47.55 ID:d/eT01GS.net]
treeコマンドやん

348 名前:デフォルトの名無しさん mailto:sage [2018/12/07(金) 20:51:06.57 ID:0M/LMioQ.net]
tree形式で図示しただけ。
gciの-Depth は再帰検索する深さの指定

349 名前:デフォルトの名無しさん mailto:sage [2018/12/07(金) 20:55:01.67 ID:0M/LMioQ.net]
ID:iBsL10N5 自身が言うべき事だが
阿呆指摘についカッとなった

350 名前:デフォルトの名無しさん mailto:sage [2018/12/07(金) 21:00:51.64 ID:hrhTiXxm.net]
清濁併せ呑んでこそのPowershell
なんたって名前からしてパワーだからな
力業もどんとこい

351 名前:デフォルトの名無しさん mailto:sage [2018/12/08(土) 11:14:58.74 ID:j0zdr08g.net]
.NET Core 3.0 Preview 1でWPF、Windows Forms, WinUIが組み込まれてオープンソース化したんか
ほえー

352 名前:デフォルトの名無しさん [2018/12/08(土) 15:04:34.50 ID:8f5a0RKW.net]
>>342
Preview出てたんだ
早速使ってみたい

353 名前:デフォルトの名無しさん mailto:sage [2018/12/08(土) 21:38:13.36 ID:3Pj/jJ/S.net]
Announcing Open Source of WPF, Windows Forms, and WinUI at Microsoft Connect(); 2018
https://blogs.windows.com/buildingapps/2018/12/04/announcing-open-source-of-wpf-windows-forms-and-winui-at-microsoft-connect-2018/



354 名前:デフォルトの名無しさん mailto:sage [2018/12/10(月) 20:42:25.20 ID:T1JETwww.net]
PowerShellでLINQって使えますかね?

355 名前:デフォルトの名無しさん mailto:sage [2018/12/10(月) 21:47:33.54 ID:PtRqcV9k.net]
Linqっぽいことはできる
(1..10).ForEach({ $_ + 100 }).Where({ $_ -gt 105 })

Linqメソッドも呼べるけどC#のようにインスタンスメソッドな感じでは使えない

[Linq.Enumerable]::Where(1..10 -as [int[]], { param($x) $x -gt 5 } -as [Func[int,bool]])

356 名前:デフォルトの名無しさん mailto:sage [2018/12/10(月) 22:38:26.51 ID:vOOk2a2h.net]
必要な箇所でC#コード書けばいいじゃん
外人のコード読むと皆そうやってるよ

357 名前:デフォルトの名無しさん mailto:sage [2018/12/11(火) 18:45:17.51 ID:zooyFZ6f.net]
@echo offと同等のコマンドってパワーシェルにありますか?

358 名前:デフォルトの名無しさん mailto:sage [2018/12/11(火) 19:50:47.03 ID:5HU4XML/.net]
>>348
エコー防止したいなら

$null = 式

式 | Out-Null

式 > $null

[void]式

どれでもどうぞ

359 名前:デフォルトの名無しさん mailto:sage [2018/12/11(火) 20:18:20.80 ID:pSYvkLmz.net]
powershellでメール受信やるならMailkitがいいですかね?

360 名前:デフォルトの名無しさん mailto:sage [2018/12/14(金) 21:21:08.51 ID:xmsOh7Vk.net]
UWPスレが死んでるのでこっちで聞き直すね
起動してるUWPアプリの列挙ってpowershellでどうやればいいですかね?
全く出てこないんですが

361 名前:デフォルトの名無しさん mailto:sage [2018/12/14(金) 23:01:55.52 ID:unWqZBXJ.net]
Get-WmiObject Win32_Process | where Path -like "*\WindowsApps\*" | fl Process Id,Name,Path
とか

362 名前:デフォルトの名無しさん [2018/12/16(日) 12:08:41.16 ID:PkDIN57F.net]
>>345
具体的にどんなことをやりたいか書いていただくと
PowerShellでLINQ利用した場合の例を挙げられると思うけど

363 名前:デフォルトの名無しさん mailto:sage [2018/12/16(日) 21:18:15.54 ID:XltMT+7i.net]
職場のPC(セキュリティ上の理由でネットに繋がらない)がWin7→Win10になったんだが
PowerShellのヘルプがオンラインヘルプだけになって見れないのでつ



364 名前:らい []
[ここ壊れてます]

365 名前:デフォルトの名無しさん mailto:sage [2018/12/16(日) 21:48:37.43 ID:GDEIwjsa.net]
Get-HelpとかISEのコマンドアドオンじゃダメなん

366 名前:354 mailto:sage [2018/12/20(木) 22:28:30.63 ID:MSiR3oAq.net]
>>355
遅くなった & 説明が間違えてたごめん

Get-Helpコマンド自体は使えるんだけど-Fullオプション付けても付けない時と同じ内容しか出てこない
つまり使用例が見れないのでPowerShellを最近使い始めた自分にはつらい

ISEもヘルプを見ようとすると「ネットに繋がりません」みたいなエラーになった

もうリファレンス本買うことにするよ・・・orz

367 名前:デフォルトの名無しさん mailto:sage [2018/12/20(木) 22:59:49.46 ID:PfMwju1x.net]
別PCでSave-Helpでファイルダウンロードして手動で配置したらあかんの?

368 名前:356 mailto:sage [2018/12/21(金) 01:31:43.78 ID:GySz2aRs.net]
>>357
セキュリティガチガチの保険会社の現場なんで無理っす><

ってか↓これポチりましたw
https://www.amazon.co.jp/dp/477415542X

369 名前:デフォルトの名無しさん mailto:sage [2018/12/21(金) 08:22:37.58 ID:Lg32FCuG.net]
5.1対応の良い感じの書籍あるんかな

370 名前:デフォルトの名無しさん mailto:sage [2018/12/22(土) 07:51:50.03 ID:i7ExTGRa.net]
変数展開するときに、
$test

${test}
ではなにが違うんですか?

371 名前:デフォルトの名無しさん [2018/12/22(土) 12:12:36.07 ID:UGqq2IDw.net]
>>360
基本一緒でしょう
GetType()
してみるとわかりますと同じですね。

ただし、${}の指定では配列のインデックス指定できない
${a[0]} とかは許されないですね。

なんでこういうのがあるかは分りません。

372 名前:デフォルトの名無しさん mailto:sage [2018/12/22(土) 14:03:56.67 ID:YB2ocxbA.net]
$test = "TEST"
"test$testtest"
"test${test}test"
こういう時にでも使うんじゃねーの
求める形に適当なのを使えばいいんじゃねーかな

373 名前:デフォルトの名無しさん mailto:sage [2018/12/22(土) 15:32:06.19 ID:TlQhzlLR.net]
中括弧つければ通常使えない文字も使える

${\(^o^)/} = "オワタ"
${ Hello ?? World! `nby powershell } = "hi"

どんな文字列でも変数名として有効であることが保証されるからコード生成とかで使われるらしい
普通は文字列への埋め込み時くらいしか使わんね



374 名前:デフォルトの名無しさん mailto:sage [2018/12/22(土) 16:16:19.79 ID:VDYmdehC.net]
>>360
私はコードの可読性を高めるためになるべく ${hoge} といった形で記述するようにしてます。
あと、文字列をつなぐような場合でも ${hoge} が使われます。

$hoge = "hoge"
echo "${hoge}fuga"
この場合は「hogefuga」が出力されますが、

$hoge = "hoge"
echo "$hogefuga"
これでは$hogefuga という変数を参照することになるので思ったように動作しません。

375 名前:デフォルトの名無しさん [2018/12/22(土) 16:37:26.19 ID:UGqq2IDw.net]
なるほどね

$test="TEST"
"test"+$test+"test"

より次の方がスマートかもね
"test${test}test"

376 名前:デフォルトの名無しさん mailto:sage [2018/12/22(土) 16:59:32.04 ID:YB2ocxbA.net]
>>363
そういえば日本語の変数もできるんでしたね

377 名前:デフォルトの名無しさん [2018/12/22(土) 17:09:04.46 ID:HuIkWn7P.net]
【たけしの超常現象特番、本日18時56分】 大槻教授がUFOやマ@トレーヤを見たらどんな反応するかな
rosie.5ch.net/test/read.cgi/liveplus/1545444404/l50

378 名前:デフォルトの名無しさん mailto:sage [2018/12/22(土) 17:15:32.75 ID:uHYOaa0r.net]
ダブルコーテーション内で変数を値展開させたい場合空白文字で区切られていないとだめ。つまり
echo "$hoge fuga"
であれば
hoge fuga
にはなる。
hogefugaを得たい場合、俺なら
echo ($hoge+"fuga")
と書く

379 名前:デフォルトの名無しさん [2018/12/22(土) 18:16:02.24 ID:UGqq2IDw.net]


380 名前:echoを使う理由はなんかあるのかな?
私はecho自体つかわないので
[]
[ここ壊れてます]

381 名前:デフォルトの名無しさん [2018/12/22(土) 18:17:09.93 ID:UGqq2IDw.net]
>>367
ありがと
それ見たい

382 名前:デフォルトの名無しさん [2018/12/22(土) 18:20:02.63 ID:b6CiPLFa.net]
ログを標準出力に出力するときに普通に使う

aho=echo `command`
こうやってコマンドの標準出力の結果を環境変数にいれるときにも
普通に使う


echoなかったらなに使えばいいワケ?

383 名前:デフォルトの名無しさん [2018/12/22(土) 18:30:20.06 ID:UGqq2IDw.net]
いや、使う場面がないので聞いただけ
通常ログに返すときにはそのままechoなしで書いているもので

上記のやり取りの例だとechoいらないな〜と思ったまで



384 名前:デフォルトの名無しさん mailto:sage [2018/12/22(土) 19:12:48.17 ID:BLULObxH.net]
echo使わなくてもコマンドの標準出力の結果を変数に入れられるのでは?
環境変数???

385 名前:デフォルトの名無しさん mailto:sage [2018/12/22(土) 19:19:04.64 ID:TlQhzlLR.net]
オプション付けないなら意味はない
使う機会は-NoEnumerateするときくらいかな
-NoEnumerateすると配列を塊のままパイプに流せる

"1-one","2-two" | foreach { Write-Output ($_ -split "-") } | Write-Host

1
one
2
two

"1-one","2-two" | foreach { Write-Output ($_ -split "-") -NoEnumerate } | Write-Host
1 one
2 two






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<269KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef