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
180
キレない変数の扱い方 /How to handle variables no anger
Endo_Hizumi
August 23, 2019
Tweet
Share
More Decks by Endo_Hizumi
See All by Endo_Hizumi
JSでギャルゲーをつくろう!(第2版)
endohizumi
0
34
JSでギャルゲーをつくろう!
endohizumi
0
190
テレビを飲み込め! Webの嵐!! / Swallow the TV! Web storm! !!
endohizumi
1
82
OK:Googleから始めるスマートホーム生活 / OK: Smart home life starting from Google
endohizumi
0
290
クソアプリで基礎固め / Tutorial in your joke app for Vue.js
endohizumi
0
190
jQuery使いがVue.jsを使った話 / thank you jQuery,Hello Vue.js
endohizumi
0
160
スマホで始めるウェブアプリ開発 / let's start web application development with a Android Device
endohizumi
1
880
キレない関数の作り方 / How to make bat function no anger
endohizumi
0
130
SwaggerでSSLCを 置き換える / Replacing SSLC with Swagger
endohizumi
0
81
Other Decks in Technology
See All in Technology
OCI IAM Identity Domains Entra IDとの認証連携設定手順 / Identity Domain Federation settings with Entra ID
oracle4engineer
PRO
2
1.4k
マネコン操作いらず! TerraformでAWSインフラのコーディングに入門しよう
minorun365
PRO
5
1.6k
Go Modulesの仕組み Bundler(Ruby)との比較を添えて
daisuketakeda
0
1.8k
Alpine.js を活用した Laravel MPA フロントエンド最適化戦略 / Alpine.js MPA
tzmfreedom
0
490
AppSheet タスク管理アプリ 中級編
comucal
PRO
0
240
Autonomous Database - Dedicated 技術詳細 / adb-d_technical_detail_jp
oracle4engineer
PRO
4
8.1k
OPENLOGI Company Profile
hr01
0
61k
バックエンドエンジニアによるフロントエンドテスト拡充の具体的手法
kinosuke01
1
210
いまから始めるAWS CDK 〜モダンなインフラ構築入門〜/iac-night-cdk-introduction
tomoki10
8
2.2k
パスキーでのログインを 実装してみよう!
hibiki_cube
0
160
単一の深層学習モデルによる不確実性の定量化の紹介 ~その予測結果正しいですか?~
ftakahashi
PRO
3
430
痒い所に手が届く!要約モデルのつくり方
sakusakumura
1
270
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
We Have a Design System, Now What?
morganepeng
51
7.5k
Six Lessons from altMBA
skipperchong
27
3.7k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Why Our Code Smells
bkeepers
PRO
336
57k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
22
2.6k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
290
Code Review Best Practice
trishagee
67
18k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.1k
Faster Mobile Websites
deanohume
306
31k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
134
33k
The Pragmatic Product Professional
lauravandoore
32
6.5k
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の中では変数参照は%の代わりに!で囲む おわり!聴いてくれてありがと!