【.cmd】 バッチファイルスクリプト %11 【.bat】at TECH
【.cmd】 バッチファイルスクリプト %11 【.bat】 - 暇つぶし2ch973:デフォルトの名無しさん
17/02/22 21:19:44.12 L0zJ8/8i.net
ほえ~、ファイル名に ( が入っていると「管理者として実行」にしくる場合があるのね

hoge.bat を
echo,all "%*"
echo,0 "%~f0"
echo,1 "%~f1"
echo,2 "%~f2"
echo これはhoge.batです
pause

hoge(A).bat のファイル名を hoge(A)(S(D).bat

にすると最初の ( で分割されてるっぽいのが見て取れる

hoge(A).bat の ( の前に1個以上半角or全角スペースを入れてやると、
そのファイル名なら問題ないみたい

なんで???

974:デフォルトの名無しさん
17/02/22 23:00:05.19 mAYQQSaw.net
バグかね?

975:デフォルトの名無しさん
17/02/22 23:56:41.49 0ijMuyId.net
"("を含むパス上にあるbatファイルを、「管理者として実行」で正常実行できない
URLリンク(social.msdn.microsoft.com)

976:デフォルトの名無しさん
17/02/23 00:16:59.94 OmWT2WV6.net
なるほど、batfile とついでに cmdfile も書き換えて....っと
レジストリいじると ( で分断されないや、勉強になります

977:デフォルトの名無しさん
17/02/23 03:57:43.76 5MDB4WX9.net
WMIC PROCESS GET /FORMAT:LIST | FINDSTR /R "CommandLine= Caption=" > "%~dpn0_%COMPUTERNAME%_プロセス一覧(%DATE:/=%-%TIME::=%時点)_wmic-findstr.log"

978:デフォルトの名無しさん
17/02/23 12:05:36.44 OfWDpqOl.net
条件によって括る括らないとかせずに全部括るようにすれば良かったのにな
バッチに限らずWinでのこの引数関係の不具合やハマりは沢山あるが
そうしていればほぼ全て解決してただろうに

979:騙し髪
17/02/24 02:03:32.35 bJGVi00E.net
これもバクじゃないから困る
systeminfo | findstr /i /r /c:"^OS バージョン"

980:デフォルトの名無しさん
17/02/24 10:39:00.57 y7jxU5gN.net
>>935
↓これで妥協するしかないのかな?
systeminfo | findstr /i /r "OS" | findstr /i /c:"バージョン"

981:デフォルトの名無しさん
17/02/24 11:34:02.28 YZGHPd2K.net
>>935
何でいきがって /r なんて指定してるんだ?

982:デフォルトの名無しさん
17/02/24 11:57:48.17 y7jxU5gN.net
>>937



983:findstr /? これの実行結果を読めば分かる。 要はsyteminfoコマンド実行結果の内、「OS バージョン」という文字列が 行頭にある行だけを正規表現で抽出したいというのが>>935の意図。 実際は以下のように記述するしかない感じだが… systeminfo | findstr /i /r "^OS" | findstr /i /c:"バージョン" ちなみに>>936は少し記述ミスがあるので無視してほしい。 また、実行結果の表記がverコマンドの場合と少し異なる点にも注目。



984:デフォルトの名無しさん
17/02/24 12:15:58.03 FJeAwGiZ.net
>>936
systeminfo | findstr /b /c:"OS バージョン"

985:デフォルトの名無しさん
17/02/24 13:24:30.97 IrOG+H9r.net
もっと困りそうなのが、引数(ファイル名)で使われることが多そうな全角スペースの取扱いだよ。

cmd と エクスプローラーで、半角スペースと同じように扱ったりそうじゃなかったりする。
エクスプローラーからのドロップやタブ補完なんかを行うと、半角スペースとは異なる扱いになるのに、
コマンド実行の際には半角スペースと同様の扱いをして、そのままではパスが通らないことがある。

たとえば、C:\test dir\test.txt (batやexeでもいい) があるとして、カレント・ディレクトリが C:\ の場合、
cd test dir はクォートなしで通るし、
cat test dir\test.txt も普通に実行できるけど、
dir test dir\test.txt は通らない(クォーティングが必要)。

全部クォーティングすれば問題にならないと思われるにも関わらず、
C:\test dir\test space.txt というファイルパス(全角スペースのみならず半角スペースあり)の場合、
エクスプローラーからコマンド・プロンプトへドロップした際、
先の C:\test dir\test.txt はクォーティングされないが、
C:\test dir\test space.txt だと、きちんとクォーティングされる。

色んなパターンが合って、上手く説明できないけど、
補完とかの挙動もおかしかったりするので、ちょっといじってみるとわかってもらえると思う。

986:デフォルトの名無しさん
17/02/24 18:08:43.97 S5p8nT+v.net
>>935
負けた気がするけど
systeminfo | findstr /i /r /c:"^OS バ..ジョン"

987:デフォルトの名無しさん
17/02/24 18:53:46.21 J9Egd7AE.net
パス区切りをバックスラッシュにしたやつ、
円記号とバックスラッシュを同じにしたやつ、
全角スペースをデリミタにしたやつ、
は土下座行脚、いや、焼き土下座行脚すべき

988:デフォルトの名無しさん
17/02/24 21:47:48.07 y7jxU5gN.net
>>939,941
そちらはどれも正常に機能するんだな。

989:デフォルトの名無しさん
17/02/24 22:06:52.03 cAJGTXKH.net
正規表現で日本語使うのに一々文字コードを確認しなきゃならないってのは大変
MSにはもっとマルチバイト言語圏に気を配って欲しかった

990:デフォルトの名無しさん
17/02/25 04:26:31.35 xGmZcvF/.net
systeminfo | findstr /i /r /c:"^OS バ"

991:デフォルトの名無しさん
17/02/25 09:03:13.40 5GrbAtXq.net
パスに含まれるスペースも問題を起こすけど、"["と"]"もこれまた厄介だ。

992:デフォルトの名無しさん
17/02/27 23:58:11.99 WTG5WMst.net
めっちゃスレチだけど、SSDってちょっと前まで寿命が短いって言われてたけど
いつの間にかHDDより寿命が長くなってるんだな。びびったわw

993:デフォルトの名無しさん
17/03/01 05:48:52.22 AsJGDaOR.net
新人がバッチファイルに興味を持ったらしく、遅延展開のことを聞いてきたので
まずお約束の「SETLOCAL ENABLEDELAYEDEXPANSION」の記述を教えたら
それだけでウンザリされたぞ。
「%」ではなく「!」で囲まなきゃならないことを教えたらさらにウンザリされた。
やっぱりとっつきにくいよなあ

994:デフォルトの名無しさん
17/03/01 12:07:40.17 e1g5jWjK.net
他の言語はある程度習得できたけど
バッチは何度やっても覚えられない

995:デフォルトの名無しさん
17/03/01 12:53:16.16 SJrJxNnQ.net
>>948
> まずお約束の「SETLOCAL ENABLEDELAYEDEXPANSION」の記述を教えたら
> それだけでウンザリされたぞ。
俺ならその時点でそんなやる気の


996:ない新人は放置する



997:デフォルトの名無しさん
17/03/01 13:11:32.18 ZEta6nTz.net
確かに、その段階で、うんざりするような人に、
教えたくは無いな。

998:デフォルトの名無しさん
17/03/01 14:45:21.65 XTrmDaeR.net
ただただ長ったらしいんだよ
SetLocal EnableDelayedExpansion
ってすればかなり反応も違ったのかも

999:デフォルトの名無しさん
17/03/01 15:21:29.24 XTrmDaeR.net
それと意識の違いがあるかもな
C#とかだったらどんなに複雑でも必死で覚えようとするだろうが
BATだとまあそこそこ使えりゃいいんだよって感じで片手間の労力しか掛けたくないんだろう
実際使う機会なんて、ifで条件切り分けて起動アプリや引数を変える程度だろう
それ以上になるなら、簡易なツールでも作ったほうがいいとなる
あとは、何でも質問してくる新人なんて付き合ってられんだろう
学校の延長じゃないんだし、BATに限らず、まずはマニュアルやヘルプやwebで調べて自分で学習することを覚えさせるべき

1000:デフォルトの名無しさん
17/03/01 15:25:56.41 TOh8r3Y7.net
俺としては遅延展開は遅延展開が必要になった状況になって初めて教えた方がいいと思うけど

わけがわからんけどとりあえず書いとくおまじないってのプログラム関係の解説に多いけど
そういうの本当にうんざりする。
おまじないなんてアホな事書くぐらいならきちんと説明しとけと

1001:デフォルトの名無しさん
17/03/01 19:10:44.78 SJrJxNnQ.net
>>953
こういう知ったかにもげんなりする
> 実際使う機会なんて、ifで条件切り分けて起動アプリや引数を変える程度だろう
そんなものに遅延展開が必要になることはほぼない

1002:デフォルトの名無しさん
17/03/01 19:15:14.05 XTrmDaeR.net
>>955
>>952も言ってるように、遅延展開が必要になった場面で
それでも使わなければならないのなら教えればいい
単に勉強として教えても身にはつかない

1003:デフォルトの名無しさん
17/03/01 19:16:27.03 XTrmDaeR.net
>>952>>954に訂正

1004:デフォルトの名無しさん
17/03/01 19:22:01.47 SJrJxNnQ.net
>>956-957
何で俺にアンカーしてるんだ?
>>954 はまあ正しいと思うし本当に必要になったかどうかは >>948 の所の新人に聞かなきゃわからんし

1005:デフォルトの名無しさん
17/03/01 20:34:12.60 novnWMTs.net
長い上に補完効かないからゲンナリしたんだろうと邪推、テンプレート的な何かを
用意してあげればハードル下がるんじゃないですかね?
補完が効くなら大した事じゃないだろうし

内容はたったこれだけだけど、右クリック→新規作成 にバッチファイルの雛形を追加してから随分楽になった>俺
@setlocal
@echo off
prompt $g
title %~n0
cd /d %~dp0

for /f "usebackq delims=" %%i in (``) do (
)

color 07
timeout 6
goto :EOF

:adminchk
whoami /GROUPS|find "High" 1>nul 2>&1
if errorlevel 1 (
color 4e
echo,このバッチファイルは 管理者権限 で実行してください.
echo,何かキーを押下するとバッチファイルを終了します.
pause 1>nul
color 07
exit
)
exit/b

今回なら 1行目に enabledelayedexpansion を↓追加したやつで

1006:デフォルトの名無しさん
17/03/01 20:35:34.84 novnWMTs.net
うを、「 ↓ 」消し忘れた orz

1007:デフォルトの名無しさん
17/03/01 21:10:31.50 9330vN7g.net
@echo offを使うコードは嫌い

ちゃんと動けば問題ないが、大抵どこかがおかしいのに自信満々で隠してる

1008:デフォルトの名無しさん
17/03/01 21:57:06.50 novnWMTs.net
スタンスの違いですかね、そんな風に考えたこともなかった

1009:デフォルトの名無しさん
17/03/01 23:08:51.35 yR2oLnRj.net
使い道が限られてるし
めちゃくちゃ便利って思うバッチの恩�


1010:bがないと 覚えるキッカケにならないと思う あとはキッティングとかやらないと必要にならない



1011:デフォルトの名無しさん
17/03/01 23:22:58.59 kitmjsdZ.net
>>961
デバッグした後であれば、表示されて煩わしい部分(コメントとか)隠すぶんにはいいんでないの?
何のコマンドを実行しているかは、その説明をechoしたり、echo on を直前に記述したっていいわけだし。

1012:デフォルトの名無しさん
17/03/02 03:25:05.16 BRCb1ETq.net
@echo on
pilder on
Mazinger Go
@echo off

1013:デフォルトの名無しさん
17/03/02 05:28:42.72 pdyDswRT.net
@echo off
rem title "name"
goto :main

comment
USING: this.bat "hoge" ["foo" ["bar"...]]
何のバッチかとか使い方とか引数や変数の説明
基本的にREMは使わない

:mein
echo 俺は全部こんな感じ

1014:デフォルトの名無しさん
17/03/02 11:37:11.71 T2bzQ343.net
シェルスクリプトはタイプ数減らすために逆にエスケープ周りのルールが複雑化して全然生産性上がらないんだよな
デバッグもしづらいし
その点でVBSは良かった
文法は糞だけど

1015:デフォルトの名無しさん
17/03/02 17:09:23.49 3Z7pahnd.net
>>966
「:mein」は、「main」?

1016:デフォルトの名無しさん
17/03/02 17:10:26.85 3Z7pahnd.net
間違った。
「:mein」は、「:main」?
だ。

1017:デフォルトの名無しさん
17/03/02 18:22:16.37 s+qRP6Bf.net
>>967
複雑?
お前さんの知能が足りんだけじゃね? w
.cmd のエスケープの方がトリッキーだろ、正式なドキュメントもないし

1018:デフォルトの名無しさん
17/03/03 05:02:41.69 WTPXL6BV.net
delimsにダブルクォーテーションを使用することは出来ないですか?

1019:デフォルトの名無しさん
17/03/03 12:31:28.29 1c3U0vHr.net
>>962
エスケープすることで可能(forのオプションは囲むことは必須ではないため)
URLリンク(stackoverflow.com)
URLリンク(otnx.jp)コマンド別/for/

1020:デフォルトの名無しさん
17/03/03 12:34:06.93 1c3U0vHr.net
>>971 の間違いだわ、失礼

1021:デフォルトの名無しさん
17/03/03 13:12:34.59 WTPXL6BV.net
>>972
囲まなくてもよかったんですね。
勉強になりましたありがとうございます。

1022:デフォルトの名無しさん
17/03/05 12:48:27.31 4ixcbh2y.net
コマンドプロンプト

1023:デフォルトの名無しさん
17/03/05 12:50:43.60 4ixcbh2y.net
間違えた、すみません。

1024:デフォルトの名無しさん
17/03/05 13:58:00.83 7VmbrbTL.net
半年ROMれ

1025:デフォルトの名無しさん
17/03/06 09:55:26.77 cTPfG0tg.net
cmd終了のお知らせ

次期大型アップデート、Windows 10 Creators Updateの実像 - PowerShellが標準に、Linux環境も強化したWindows 10 Creators Update:ITpro
URLリンク(itpro.nikkeibp.co.jp)

1026:デフォルトの名無しさん
17/03/06 19:59:20.47 ZhaNpIEG.net
まじかよ…まぁでもまだいける

1027:デフォルトの名無しさん
17/03/06 20:25:53.65 ajpZLJux.net
cmd環境はサポート維持が表明されてるから安心して良いよ
むしろ危ないのはWSHの方

1028:デフォルトの名無しさん
17/03/07 10:57:03.69 yt35hC5o.net
>>978
塩田さんの記事か。
少し、ひっかかるものがあるけど。

1029:デフォルトの名無しさん
17/03/07 11:34:23.30 NGhUJ85m.net
>>980
記事を読む限りはcmd環境も維持されるみたいね
なんとなく安心

1030:デフォルトの名無しさん
17/03/08 16:42:00.84 yjHW4J+N.net
test

1031:デフォルトの名無しさん
17/03/08 16:42:42.42 yjHW4J+N.net
test2

1032:デフォルトの名無しさん
17/03/08 16:43:19.20 yjHW4J+N.net
test3

1033:デフォルトの名無しさん
17/03/08 16:44:30.11 yjHW4J+N.net
test4

1034:デフォルトの名無しさん
17/03/08 16:44:57.54 yjHW4J+N.net
check.

1035:デフォルトの名無しさん
17/03/08 20:25:28.66 22c2SBHy.net
del の外にごみ箱送りの削除コマンドを追加して欲しい
できるソフトはあるが、内部コマンドで

1036:デフォルトの名無しさん
17/03/10 20:40:22.23 f4ZS1b20.net
はは

1037:デフォルトの名無しさん
17/03/10 22:27:00.13 yR7vM1Ks.net
>>989
ひろし、ごはんだよ

1038:デフォルトの名無しさん
17/03/11 05:16:21.18 fFh0REPG.net
落ちる

1039:デフォルトの名無しさん
17/03/11 11:23:33.97 0VclosvM.net
落ちるー。

ミハル

1040:デフォルトの名無しさん
17/03/11 13:48:33.39 2LSSeyH1.net
次スレ
【.cmd】 バッチファイルスクリプト %12 【.bat】
スレリンク(tech板)

あとヨロシク

1041:デフォルトの名無しさん
17/03/11 13:55:01.66 +iqzxRFD.net
落ちゆく、スレにも、幸いあれ。

1042:デフォルトの名無しさん
17/03/11 20:19:37.53 +iqzxRFD.net
今は、落ちゆくスレとても、dat内にて、花さかせん。

1043:デフォルトの名無しさん
17/03/11 20:55:16.00 a53QpxuN.net
うめ

1044:デフォルトの名無しさん
17/03/12 05:37:51.15 59Ox3raF.net
梅一輪 一輪ほどの あたたかさ
             服部嵐雪

1045:デフォルトの名無しさん
17/03/12 05:51:14.15 FQp4yzuc.net


1046:デフォルトの名無しさん
17/03/12 11:27:49.81 1iqHgo3m.net
shutdown /s /f /t 0 ←Windowsを即電源断
shutdown /r /f /t 0 ←Windowsを即再起動(※現在セーフモードならセーフモード,通常モードなら通常モードで再起動)

1047:デフォルトの名無しさん
17/03/12 11:35:19.11 1iqHgo3m.net
あと6レスで今スレともおさらばか…

1048:デフォルトの名無しさん
17/03/12 12:15:48.13 eYHcL9Aw.net
2年かかったな

1049:デフォルトの名無しさん
17/03/12 13:02:15.60 59Ox3raF.net
梅の花散らまく惜しみわが園の竹の林に鶯鳴くも
                    少監阿氏奥島

1050:デフォルトの名無しさん
17/03/12 18:55:33.66 t+BguLGS.net
鶯谷の鶯嬢の鳴く声が聞こえてきそうだw

1051:デフォルトの名無しさん
17/03/12 20:22:26.13 1iqHgo3m.net
さぁ、このスレをシャットダウンしようじゃないか

1052:デフォルトの名無しさん
17/03/12 20:24:39.74 1iqHgo3m.net
>>993
次スレ乙

1053:デフォルトの名無しさん
17/03/12 20:54:33.04 1iqHgo3m.net
1000!

1054:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch