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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Endo_Hizumi
August 23, 2019
Technology
220
0
Share
キレない変数の扱い方 /How to handle variables no anger
Endo_Hizumi
August 23, 2019
More Decks by Endo_Hizumi
See All by Endo_Hizumi
欲しいを叶える個人開発の進め方 / How to Run an Indie Project That Brings Your Ideas to Life
endohizumi
0
860
JSでギャルゲー!~JavaScriptでノベルゲーエンジン作ったった~
endohizumi
1
410
意志の力が9割。アニメから学ぶAI時代のこれから。
endohizumi
1
170
JSでギャルゲーをつくろう!(第3版)
endohizumi
0
250
JSでギャルゲーをつくろう!(第2版)
endohizumi
0
94
JSでギャルゲーをつくろう!
endohizumi
0
480
テレビを飲み込め! Webの嵐!! / Swallow the TV! Web storm! !!
endohizumi
1
130
OK:Googleから始めるスマートホーム生活 / OK: Smart home life starting from Google
endohizumi
0
360
クソアプリで基礎固め / Tutorial in your joke app for Vue.js
endohizumi
0
260
Other Decks in Technology
See All in Technology
基礎から解説!Icebergで紐解くSnowflake×Databricks連携の現在地
cm_yasuhara
0
410
oracle-to-databricks-migration-with-llm-and-dbt
casek
1
380
探して_入れて_作って_使う_Agent_Skills___LT.pdf
peintangos
2
110
Kiro CLI v2.0.0がやってきた!
kentapapa
0
240
Sony_KMP_Journey_KotlinConf2026
sony
1
180
Platform engineering for developers, architects & the rest of us (AI agents)
danielbryantuk
0
160
Spring Boot における AOT Cache 活用テクニックと 起動時間改善事例
ntt_dsol_java
0
180
地元にいないローカルオーガナイザーの立ち回り
uvb_76
1
400
『家族アルバム みてね』における インシデント対応との向き合い方 / Approach incident response in Family Album
kohbis
2
280
Gradle×GitHub_ActionsでCI時間を約50%短縮 ジョブ分割の設計と落とし穴 / Cutting CI Time by ~50% with Gradle and GitHub Actions: Job-Splitting Design and Pitfalls
takatty
0
550
食べログのサーキットブレーカー導入を振り返って
atpons
1
160
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.5k
Featured
See All Featured
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
54k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Crafting Experiences
bethany
1
160
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
460
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
130
Mind Mapping
helmedeiros
PRO
1
220
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
190
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
370
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
320
Designing Powerful Visuals for Engaging Learning
tmiket
1
390
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Building an army of robots
kneath
306
46k
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の中では変数参照は%の代わりに!で囲む おわり!聴いてくれてありがと!