Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
キレない変数の扱い方 /How to handle variables no anger
Search
Endo_Hizumi
August 23, 2019
Technology
0
130
キレない変数の扱い方 /How to handle variables no anger
Endo_Hizumi
August 23, 2019
Tweet
Share
More Decks by Endo_Hizumi
See All by Endo_Hizumi
テレビを飲み込め! Webの嵐!! / Swallow the TV! Web storm! !!
endohizumi
1
75
OK:Googleから始めるスマートホーム生活 / OK: Smart home life starting from Google
endohizumi
0
250
クソアプリで基礎固め / Tutorial in your joke app for Vue.js
endohizumi
0
160
jQuery使いがVue.jsを使った話 / thank you jQuery,Hello Vue.js
endohizumi
0
150
スマホで始めるウェブアプリ開発 / let's start web application development with a Android Device
endohizumi
1
800
キレない関数の作り方 / How to make bat function no anger
endohizumi
0
99
SwaggerでSSLCを 置き換える / Replacing SSLC with Swagger
endohizumi
0
75
Server-sent eventsを使ってみた / I tried using Server-sent event
endohizumi
1
1.1k
Netlifyで、ポートフォリオをつくってみた
endohizumi
0
93
Other Decks in Technology
See All in Technology
累計ダウンロード数1億8000万を超えるアプリケーションプラットフォームのレガシーシステム脱却とモダン化への道
kmitsuhashi
0
120
公共領域から学ぶ クラウド移行についてエンジニアが意識していること
kawakawa2222
0
140
20240717_イケコパ代表Copilot_in_Teams会社でこう使ってます
ponponmikankan
2
430
20240724_cm_odyssey_hibiyatech
hiashisan
0
110
AOAI Dev Day - Opening Session
yoshidashingo
2
430
「単なる OAuth 2.0 を認証に使うと、車が通れるほどのどでかいセキュリティー・ホールができる」のか検証してみた
terara
0
380
ペパボのオブザーバビリティ研修2024 説明資料
kesompochy
0
1.1k
RAGのサービスをリリースして1年3ヶ月が経ちました
segavvy
4
900
スレットハンティングについて知っておきたいこと
hacket
0
130
サービスの持続的な成長と技術負債について
siva_official
PRO
10
4.4k
プレイドにおけるDatadog APMの活用方法
plaidtech
PRO
2
120
[I/O Extended Android 2024] What`s new in Android 2024
kyeongwan
0
220
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
26
2.1k
Infographics Made Easy
chrislema
238
18k
Being A Developer After 40
akosma
72
580k
Principles of Awesome APIs and How to Build Them.
keavy
124
16k
Teambox: Starting and Learning
jrom
130
8.6k
Practical Orchestrator
shlominoach
185
10k
Fontdeck: Realign not Redesign
paulrobertlloyd
79
5.1k
Agile that works and the tools we love
rasmusluckow
325
20k
Optimizing for Happiness
mojombo
373
69k
Web Components: a chance to create the future
zenorocha
307
41k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
17
8.7k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
26
1.6k
Transcript
キレない変数の扱い方 バッチファイル編
どうも、こんばんわ
遠藤ヒズミです
通りすがりのWebエンジニアしてます
個人的に懐かしのネタといえば
Windows Meの時に ダイアルアップ接続中に フリーズさせて親に怒られた思い出が。
キレないバッチファイル変数の扱い方
最初に バッチファイルを書くくらいなら、PowerShell スクリプト書いた方がまだ、人権があると思 うな僕は!!
バッチファイルとは • DOSコマンドを記述したテキストファイル • WindowsやMS-DOS、OS/2で定型的な作業の自動化に使われる • プログラムの起動ファイルとして用いられることもある • IFやFORなどの制御構文があり、やろうと思えばプログラムも作れる •
ラベル・call・exit /b で、関数っぽいものを作ることができる(↓)
バッチファイルの変数は癖がありすぎる • 四則演算の時は、SETコマンドに/aオプションをつける ← なるほど • 代入のイコール前後は、スペースを入れてはいけない ← なるほど? •
FORやIFの制御構文内で使うには、!で囲む必要がある ← は? • FORの一時変数はCMD直とバッチでは書き方が違う←直の時は%は1つ • コマンドの実行結果を変数に入れるには、FOR文を使う ← めんどい よく忘れてハマって、壊れてるんじゃないのこれー!?とキレそうになる。
バッチファイルの変数は癖がありすぎる • 四則演算の時は、SETコマンドに/aオプションをつける ← なるほど • 代入のイコール前後に、スペースを入れてはいけない ← なるほど? •
FORやIFの制御構文内で使うには、!で囲む必要がある ← は? • FORの一時変数はCMD直とバッチでは書き方が違う←直の時は%は1つ • コマンドの実行結果を変数に入れるには、FOR文を使う ← めんどい よく忘れてハマって、壊れてるんじゃないのこれー!?とキレそうになる。
代入のイコール前後にスペースを入れてはいけない こう書くじゃん?
代入のイコールに、スペースを入れてはいけない 実行するじゃん?
代入のイコールに、スペースを入れてはいけない ダメじゃん?
なんでじゃん?(□は、半角スペースです) SET□hoge□=□hoge 半角スペースまでが変数名扱いだから ちなみに値も半角スペース入り
こうすればいい
こうすればいい や っ た ぜ
FORやIFの制御構文内で使うには、!で囲む必要がある こう書いても
FORやIFの制御構文内で使うには、!で囲む必要がある 広がるのは、 え い え ん の ゼ ロ
なんでじゃん?(□は、半角スペースです) • FOR文は、実行時に一行になる • 実行前に、変数を展開する
つまり? ここがこんな風に10回繰り返されているだけ ココ
どうすれば? ”@setlocal enabledelayedexpansion”を、追記して %の代わりに!で変数名を囲うと、実行時に変数を展開してくれる
こうすればいい や っ た ぜ
こうすればいい や っ た ぜ
やっぱり、めんどくさいな!
まとめ • 変数代入時にスペースは不要 • FORの中では変数参照は%の代わりに!で囲む
まとめ • 変数代入時にスペースは不要 • FORの中では変数参照は%の代わりに!で囲む おわり!聴いてくれてありがと!