拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる
質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。
※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。
前スレ
【.cmd】 バッチファイルスクリプト %11 【.bat】©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1424858999/
それ以前の過去スレ
%10 http://peace.2ch.net/test/read.cgi/tech/1374205515/
%9 http://toro.2ch.net/test/read.cgi/tech/1335015478/
%8 http://toro.2ch.net/test/read.cgi/tech/1315844420/
%7 http://hibari.2ch.net/test/read.cgi/tech/1298873550/
%6 http://hibari.2ch.net/test/read.cgi/tech/1277465356/
%5 http://pc12.2ch.net/test/read.cgi/tech/1242268171/
%4 http://pc12.2ch.net/test/read.cgi/tech/1229955189/
%3 http://pc11.2ch.net/test/read.cgi/tech/1217860043/
%2 http://pc12.2ch.net/test/read.cgi/tech/1197881068/
%1 http://pc11.2ch.net/test/read.cgi/tech/1178281991/
探検
【.cmd】 バッチファイルスクリプト %12 【.bat】©2ch.net
レス数が900を超えています。1000を超えると表示できなくなるよ。
2017/03/11(土) 13:47:11.66ID:2LSSeyH1
818デフォルトの名無しさん
2018/09/11(火) 21:05:10.34ID:hTiklz9U nkf 推しは死ね。
それはなんでもアリじゃねぇか。
とりあえず、ここは「(デフォでは)全Windows環境で動く」が前提にしろや。
>>817
それが何故上手く動くのかの解説をする義務が君にはあると思う。
「ここのコマンドでSJIS変換が入ってます」くらいの。
それはなんでもアリじゃねぇか。
とりあえず、ここは「(デフォでは)全Windows環境で動く」が前提にしろや。
>>817
それが何故上手く動くのかの解説をする義務が君にはあると思う。
「ここのコマンドでSJIS変換が入ってます」くらいの。
819デフォルトの名無しさん
2018/09/11(火) 21:54:57.13ID:7Sv68F+V 上記の2バイトのBOMはユニコードのテキストである印です。
例えばメモ帳で空のユニコードのファイルを作成したらbom.txtと同じになる。
typeコマンドはBOMを参照して入力コードを決定し、
コードページを参照して出力コードを決定する。
例えばメモ帳で空のユニコードのファイルを作成したらbom.txtと同じになる。
typeコマンドはBOMを参照して入力コードを決定し、
コードページを参照して出力コードを決定する。
820デフォルトの名無しさん
2018/09/11(火) 23:18:52.19ID:hTiklz9U821デフォルトの名無しさん
2018/09/12(水) 08:46:42.71ID:wnqO0p2C もの凄く泥臭いな
822デフォルトの名無しさん
2018/09/12(水) 12:32:37.36ID:iSRyeJ5N 応用すれば色々と変換できる
ソースが EUC-JP の例
set /p BOM="" < nul > UTF-16LE.txt
chcp 20932
cmd /u /c type EUC-JP.txt >> UTF-16LE.txt
chcp 65000
type UTF-16LE.txt > UTF-7.txt
chcp 65001
type UTF-16LE.txt > UTF-8.txt
chcp 50222
type UTF-16LE.txt > JIS.txt
chcp 932
type UTF-16LE.txt > SJIS.txt
泥臭いのが好きな人はどうぞ
改行コードは知らんw
ソースが EUC-JP の例
set /p BOM="" < nul > UTF-16LE.txt
chcp 20932
cmd /u /c type EUC-JP.txt >> UTF-16LE.txt
chcp 65000
type UTF-16LE.txt > UTF-7.txt
chcp 65001
type UTF-16LE.txt > UTF-8.txt
chcp 50222
type UTF-16LE.txt > JIS.txt
chcp 932
type UTF-16LE.txt > SJIS.txt
泥臭いのが好きな人はどうぞ
改行コードは知らんw
823デフォルトの名無しさん
2018/09/12(水) 21:20:08.66ID:EE8mLPPB 本筋とは関係ないんだが、『2バイトのBOM』のあるレス >>817,822 読み込むと
しばらくしてと JaneStyle(3.75) が落ちる
dat から該当部分『2バイトのBOM』を削除すると問題なくなる
今どき JaneStyle 3.75 使ってる人はほぼ居ないと思うけど参考まで
オマ環だったらゴメンナサイ
しばらくしてと JaneStyle(3.75) が落ちる
dat から該当部分『2バイトのBOM』を削除すると問題なくなる
今どき JaneStyle 3.75 使ってる人はほぼ居ないと思うけど参考まで
オマ環だったらゴメンナサイ
824デフォルトの名無しさん
2018/09/12(水) 22:07:08.64ID:iSRyeJ5N 俺の環境は Win10 で
Jane Style Version 4.00
不具合無い
Jane Style Version 4.00
不具合無い
825デフォルトの名無しさん
2018/09/12(水) 22:49:28.45ID:gLwHpn+Y >>823
専ブラをバージョンアップしない理由は何?
専ブラをバージョンアップしない理由は何?
826デフォルトの名無しさん
2018/09/12(水) 23:08:31.59ID:alzyNvAF >>823
3.75でこのスレを串(API)で読み込んで10分ほど放置、その後新着チェックや別スレを見ても別に落ちたりしないんだが
(なお、HTMLで読み込むとBOM部分が削除されちゃったんで意味なし)
3.75でこのスレを串(API)で読み込んで10分ほど放置、その後新着チェックや別スレを見ても別に落ちたりしないんだが
(なお、HTMLで読み込むとBOM部分が削除されちゃったんで意味なし)
827デフォルトの名無しさん
2018/09/12(水) 23:09:04.85ID:iSRyeJ5N どうやら >>822 のBOM="" の引用符の中は
Internet Explorer 11 ではコピペ出来ないようだ
該当の行の Base64 は
c2V0IC9wIEJPTT0i//4iIDwgbnVsID4gVVRGLTE2TEUudHh0DQo=
Internet Explorer 11 ではコピペ出来ないようだ
該当の行の Base64 は
c2V0IC9wIEJPTT0i//4iIDwgbnVsID4gVVRGLTE2TEUudHh0DQo=
828デフォルトの名無しさん
2018/09/12(水) 23:48:42.33ID:/kdY+KWC830デフォルトの名無しさん
2018/09/13(木) 00:07:45.35ID:t/mtX2p/ なお10回程スクロール(キー、マウスホィール、スクロールバー)してみたんだけど
831デフォルトの名無しさん
2018/09/13(木) 00:47:39.75ID:vvLnBjaZ MacTypeは関係ないのでは?
4.0でなんともないし
4.0でなんともないし
832デフォルトの名無しさん
2018/09/13(木) 00:49:13.24ID:1CXXM/l/ 確認ありがとうございます
限定的な環境依存のいわゆる、オマ環、と分かっただけでも収穫です
流石にスレチと思うのでこの辺で
限定的な環境依存のいわゆる、オマ環、と分かっただけでも収穫です
流石にスレチと思うのでこの辺で
833デフォルトの名無しさん
2018/09/14(金) 07:13:36.14ID:FIpeWt57834デフォルトの名無しさん
2018/09/14(金) 13:56:39.97ID:Ah8o0gi1835デフォルトの名無しさん
2018/09/14(金) 16:33:12.67ID:UfVRD/gP よくわかんないんだけど
BOMはUTF-16LEでは "FF FE" じゃないの?
BOMはUTF-16LEでは "FF FE" じゃないの?
836デフォルトの名無しさん
2018/09/14(金) 17:33:39.58ID:Ah8o0gi1 >>822ならそうなるよ。
837デフォルトの名無しさん
2018/09/14(金) 18:51:45.62ID:fIt3xJ+t >>834
chcp 65000が利かないのかな?環境は2000? XP?
こっちではどうかな?
for /f "tokens=1,2 delims=[" %%i in ('cmd /u /c echo 寿対') do set xFF=%%i&set xFE=%%j
set /p BOM=%xFF%%xFE%<nul>utf16le.txt
chcp 65000が利かないのかな?環境は2000? XP?
こっちではどうかな?
for /f "tokens=1,2 delims=[" %%i in ('cmd /u /c echo 寿対') do set xFF=%%i&set xFE=%%j
set /p BOM=%xFF%%xFE%<nul>utf16le.txt
838デフォルトの名無しさん
2018/09/14(金) 20:35:18.83ID:Ah8o0gi1839デフォルトの名無しさん
2018/09/19(水) 17:45:23.36ID:zK7o51II setlocal enabledelayedexpansion
set a=a
set b=A
if /i %a% == %b:~0,1% echo eq1
if /i !a! == !b:~0,1! echo eq2
set c=!b:~0,1!
if /i !a! == !c! echo eq3
if /i %a% == %b% echo eq4
if /i !a! == !b! echo eq5
結果は
eq1
eq3
eq4
eq5
何故か eq2 が出ない
set a=a
set b=A
if /i %a% == %b:~0,1% echo eq1
if /i !a! == !b:~0,1! echo eq2
set c=!b:~0,1!
if /i !a! == !c! echo eq3
if /i %a% == %b% echo eq4
if /i !a! == !b! echo eq5
結果は
eq1
eq3
eq4
eq5
何故か eq2 が出ない
840デフォルトの名無しさん
2018/09/19(水) 18:33:47.81ID:zK7o51II setlocal enabledelayedexpansion
set a=abc
if /i !a:~0,1! == !a:~0,1! echo eq
1! の使い方が誤っています。
俺の PC だけなのか?
set a=abc
if /i !a:~0,1! == !a:~0,1! echo eq
1! の使い方が誤っています。
俺の PC だけなのか?
841デフォルトの名無しさん
2018/09/19(水) 18:44:41.74ID:zK7o51II 分かった
^, にしたら良かった
if /i !a:~0^,1! == !a:~0^,1! echo eq
^, にしたら良かった
if /i !a:~0^,1! == !a:~0^,1! echo eq
842デフォルトの名無しさん
2018/09/20(木) 06:54:59.39ID:SZObeV+C 謎仕様だなあ...
843デフォルトの名無しさん
2018/09/21(金) 03:25:46.77ID:q2E2aQh+ また謎です
shiftすると%1は変わるが、%*は変わらない
shiftすると%1は変わるが、%*は変わらない
844デフォルトの名無しさん
2018/10/03(水) 12:55:17.46ID:kms9X1pz 表示は出来るが、代入が一部だけ出来ない整数値があったよ
@echo off
setlocal enabledelayedexpansion
set /a "a=1<<31"
set /a b=a
set /a c=%a%
set /a d=!a!
echo a=%a%
echo b=%b%
echo c=%c%
echo d=%d%
pause
結果は
a=-2147483648
b=-2147483648
c=
d=
@echo off
setlocal enabledelayedexpansion
set /a "a=1<<31"
set /a b=a
set /a c=%a%
set /a d=!a!
echo a=%a%
echo b=%b%
echo c=%c%
echo d=%d%
pause
結果は
a=-2147483648
b=-2147483648
c=
d=
845デフォルトの名無しさん
2018/10/05(金) 06:58:30.40ID:Iu01kfl1 setlocal enabledelayedexpansion
set /a "a=1,b_!a!=2"
set b_
で、
b_0=2
何か変だが、こういう仕様なのか?
set /a "a=1,b_!a!=2"
set b_
で、
b_0=2
何か変だが、こういう仕様なのか?
846デフォルトの名無しさん
2018/10/05(金) 08:53:46.57ID:vSWfZutq ,で分けてあってもsetコマンドは1つだけなので複数コマンドとは思われてないってことなんだろうね
setlocal enabledelayedexpansion
set /a a=1 & set b_!a!=2
set b_!a!
なら大丈夫
setlocal enabledelayedexpansion
set /a a=1 & set b_!a!=2
set b_!a!
なら大丈夫
847デフォルトの名無しさん
2018/10/05(金) 17:03:33.33ID:Iu01kfl1 >>846 ありがとうございます
!a! は set /a 実行直前の値でした
setlocal enabledelayedexpansion
set /a a=0
for /L %%i in (1,1,3) do set /a "a=%%i,b=a,c=!a!,d=%a%" & echo !a! !b! !c! !d!
1 1 0 0
2 2 1 0
3 3 2 0
!a! は set /a 実行直前の値でした
setlocal enabledelayedexpansion
set /a a=0
for /L %%i in (1,1,3) do set /a "a=%%i,b=a,c=!a!,d=%a%" & echo !a! !b! !c! !d!
1 1 0 0
2 2 1 0
3 3 2 0
848デフォルトの名無しさん
2018/10/05(金) 17:27:41.95ID:vSWfZutq setlocal enabledelayedexpansion
set /a a=0
for /L %%i in (1,1,3) do ( set /a a=%%i &set /a b=a &set /a c=!a! &set /a d=%a% &echo !a! !b! !c! !d! )
なら
1 1 1 0
2 2 2 0
3 3 3 0
となる。
bへの値代入が!抜きのaでできるって知らなかったわ…
謎挙動。
set /a a=0
for /L %%i in (1,1,3) do ( set /a a=%%i &set /a b=a &set /a c=!a! &set /a d=%a% &echo !a! !b! !c! !d! )
なら
1 1 1 0
2 2 2 0
3 3 3 0
となる。
bへの値代入が!抜きのaでできるって知らなかったわ…
謎挙動。
849デフォルトの名無しさん
2018/10/05(金) 18:09:57.00ID:Iu01kfl1 set /a で %a% や !a! はあまり使用しない方が良さそうだ
% や ! は演算子に含まれる文字で紛らわしいし
展開のタイミングで予想外の挙動するし
展開時に >>844 のように特異値でエラーになったりするし
値参照は変数名だけでいい
% や ! は演算子に含まれる文字で紛らわしいし
展開のタイミングで予想外の挙動するし
展開時に >>844 のように特異値でエラーになったりするし
値参照は変数名だけでいい
850デフォルトの名無しさん
2018/10/05(金) 18:17:00.44ID:vSWfZutq ご自由に。それより某グラマー御用達QAサイトのトップ回答者様が書くバッチがgoto :EOF 多用で頭痛い
851デフォルトの名無しさん
2018/10/05(金) 18:26:50.86ID:Iu01kfl1 俺もよく使うよ、goto :eof
852デフォルトの名無しさん
2018/10/05(金) 18:28:05.47ID:hOPHqLcn853デフォルトの名無しさん
2018/10/05(金) 18:33:02.62ID:Iu01kfl1 goto その物が多いとか言われた事も
854デフォルトの名無しさん
2018/10/05(金) 18:46:17.97ID:vSWfZutq 自分だと大抵
{メインルーチン}
goto :EOF
:sub1
{サブルーチン12}
exit /b
:sub2
{サブルーチン}
exit /b
と書くことが多い。
トップ回答者様は
{メインルーチン}
goto :EOF
:sub1
{サブルーチン}
goto :EOF
sub2
{サブルーチン}
goto :EOF
と回答されている。サブルーチンの下のはgoto は不要だし慣れない。
{メインルーチン}
goto :EOF
:sub1
{サブルーチン12}
exit /b
:sub2
{サブルーチン}
exit /b
と書くことが多い。
トップ回答者様は
{メインルーチン}
goto :EOF
:sub1
{サブルーチン}
goto :EOF
sub2
{サブルーチン}
goto :EOF
と回答されている。サブルーチンの下のはgoto は不要だし慣れない。
855デフォルトの名無しさん
2018/10/05(金) 19:02:53.79ID:Iu01kfl1 戻り値なけりゃどっちでもいい様な気がするが
逆に exit を避けてる人もいるよ
逆に exit を避けてる人もいるよ
856デフォルトの名無しさん
2018/10/05(金) 19:53:21.88ID:LaGwhHU8 俺もgoto派だな
857デフォルトの名無しさん
2018/10/05(金) 21:35:58.50ID:RB/KKRkK gotoは見通しが悪くなるから、極力使わないようにしてる
他の主流の言語だと使えないものが多いから、必然的にそういう書き方に慣れてしまった
他の主流の言語だと使えないものが多いから、必然的にそういう書き方に慣れてしまった
858デフォルトの名無しさん
2018/10/05(金) 23:49:53.55ID:8nMQUHh9 goto は使わないに越したことはない。
が、制御構文が貧弱な言語では、熟慮の上で使わざるを得ない場面で使う。
が正解。
詳しくはWikipediaで。
が、制御構文が貧弱な言語では、熟慮の上で使わざるを得ない場面で使う。
が正解。
詳しくはWikipediaで。
859デフォルトの名無しさん
2018/10/05(金) 23:56:24.52ID:qkvvR9Zs Cでもgotoは使うよね
860デフォルトの名無しさん
2018/10/05(金) 23:58:44.47ID:8nMQUHh9 C言語にはMISRAとかいう規約があるが無視していい。
あれは組み込み分野だけの特殊なものだと思っていい。
大抵の人間は、「これは思考からはぶいていい」という書き方の方が読みやすい。
だから、「これは戻すか終わらせる」と書いていっていい。
そうすれば、残ったものに集中できるだろ?
まぁ、日ごろ「自分が辞めた後にこれを読まされる人間が困らないかどうか」って考えて書いてるかどうかってことだ。
あれは組み込み分野だけの特殊なものだと思っていい。
大抵の人間は、「これは思考からはぶいていい」という書き方の方が読みやすい。
だから、「これは戻すか終わらせる」と書いていっていい。
そうすれば、残ったものに集中できるだろ?
まぁ、日ごろ「自分が辞めた後にこれを読まされる人間が困らないかどうか」って考えて書いてるかどうかってことだ。
861デフォルトの名無しさん
2018/10/06(土) 16:39:29.59ID:P4YKYACU あちこちでreturnするのもスパゲッティなgotoと大差がない気がするんだ
テロ的というか
テロ的というか
862デフォルトの名無しさん
2018/10/06(土) 17:10:22.17ID:GNiE4xH/ 字面が違うだけで同じだろ
863デフォルトの名無しさん
2018/10/06(土) 20:28:48.17ID:gea8Zy97 gotoもイディオムに従って使えば混乱しない
バッチファイルだとforの方が理解不能で害悪
バッチファイルだとforの方が理解不能で害悪
864デフォルトの名無しさん
2018/10/06(土) 23:02:20.58ID:tgEP6apu gotoがゴーゴーに見えた
865デフォルトの名無しさん
2018/10/06(土) 23:12:15.45ID:uJ87E9Rb >>860-861
IPAの出してるMISRAの解説書のreturnは1か所にしろというルール、
あれはクソofクソのルールだと思うね。early returnこそ正義
Cとbatの書き方は全然比較にならないけど
IPAの出してるMISRAの解説書のreturnは1か所にしろというルール、
あれはクソofクソのルールだと思うね。early returnこそ正義
Cとbatの書き方は全然比較にならないけど
866デフォルトの名無しさん
2018/10/07(日) 00:27:12.50ID:pbh8RIqN >>861
むしろ goto の良い使い方と言われている制限が、return をまねたもの。
むしろ goto の良い使い方と言われている制限が、return をまねたもの。
867デフォルトの名無しさん
2018/10/07(日) 11:03:03.39ID:Bzp9uIq0 バッチファイルかパワーシェルでIPv4のIPアドレスのみを取得して環境変数に代入するにはどういうコマンドになりますか?
教えてください
教えてください
868デフォルトの名無しさん
2018/10/07(日) 12:00:15.70ID:6qmhFN/2 「powershell ip address」で検索!
869デフォルトの名無しさん
2018/10/07(日) 12:28:26.52ID:VwaVbKnV >>867
環境変数IPAddressに192を含んだIPアドレスを代入するサンプル(PowerShell 2.0併用)
set CMD=powershell -command "& {ipconfig |? {$_ -match 'IP.*: 192\.'}|% {$_ -replace '.*: (\d+\.\d+\.\d+\.\d+)','$1'}}"
for /f "usebackq delims=" %%a in (`%CMD%`) do set IPAddress=%%a
echo %IPAddress%
PowerShell部分はipconfigの結果から正規表現でIPと: 192という文字を含む行を抽出
抽出した行のIPアドレス部分のみ正規表現の置換で抽出といった感じ
PowerShell3.0以降だともうちょっと素直に書ける感じだけど
環境変数IPAddressに192を含んだIPアドレスを代入するサンプル(PowerShell 2.0併用)
set CMD=powershell -command "& {ipconfig |? {$_ -match 'IP.*: 192\.'}|% {$_ -replace '.*: (\d+\.\d+\.\d+\.\d+)','$1'}}"
for /f "usebackq delims=" %%a in (`%CMD%`) do set IPAddress=%%a
echo %IPAddress%
PowerShell部分はipconfigの結果から正規表現でIPと: 192という文字を含む行を抽出
抽出した行のIPアドレス部分のみ正規表現の置換で抽出といった感じ
PowerShell3.0以降だともうちょっと素直に書ける感じだけど
870デフォルトの名無しさん
2018/10/07(日) 12:53:16.71ID:Dedwpgqn アダプタが1つだけならこんなでいいんじゃね?
setlocal enabledelayedexpansion
for /f "tokens=2 delims=:" %%a in ('ipconfig ^|find "IPv4"') do set IPADRESS=%%a
set IPADRESS=%IPADRESS:~1%
echo %IPADRESS%
setlocal enabledelayedexpansion
for /f "tokens=2 delims=:" %%a in ('ipconfig ^|find "IPv4"') do set IPADRESS=%%a
set IPADRESS=%IPADRESS:~1%
echo %IPADRESS%
871デフォルトの名無しさん
2018/10/07(日) 12:54:26.67ID:Bzp9uIq0 この処理作るのにバッチとパワーシェル組み合わせないとできないんですか?
ip取得するだけでも結構大変なのですね
ip取得するだけでも結構大変なのですね
872デフォルトの名無しさん
2018/10/07(日) 12:56:55.73ID:Bzp9uIq0 と思ったらバッチだけでもできそうなんですね、アダプターは一つです
ちょっと色々教えてもらったのでテストしてみます!
ちょっと色々教えてもらったのでテストしてみます!
873870
2018/10/07(日) 13:03:20.66ID:Dedwpgqn 遅延変数展開の呪文要らなかったわ、1行目削っていいよ
874デフォルトの名無しさん
2018/10/07(日) 13:07:01.74ID:Bzp9uIq0 遅延環境数ってforとifの()で使用するときだけ必要なんでしたっけ?
875デフォルトの名無しさん
2018/10/07(日) 13:23:02.79ID:Dedwpgqn だいたいその理解でおk
forやifの()内のスクリプトブロックが複数処理で変数代入とその参照のペアがある場合に使う
1処理だけとか、代入だけとかなら不要
forやifの()内のスクリプトブロックが複数処理で変数代入とその参照のペアがある場合に使う
1処理だけとか、代入だけとかなら不要
876デフォルトの名無しさん
2018/10/07(日) 17:41:47.85ID:0jrGYEp4 無限ループの原因は何か
SET A=1073741824
FOR /L %%B IN (-%A%,%A%,%A%) DO ECHO %%B
SET A=1073741824
FOR /L %%B IN (-%A%,%A%,%A%) DO ECHO %%B
877デフォルトの名無しさん
2018/10/07(日) 19:04:07.20ID:Dedwpgqn set /a A=1073741824
1073741824
set /a B=A+A
-2147483648
となるからね、32bitINTの範囲が-2147483648〜-2147483647
2進表記の最上位bitが1が立ってしまったらマイナス値
1073741824
set /a B=A+A
-2147483648
となるからね、32bitINTの範囲が-2147483648〜-2147483647
2進表記の最上位bitが1が立ってしまったらマイナス値
878デフォルトの名無しさん
2018/10/07(日) 19:25:23.31ID:Dedwpgqn 試してみるとfor /l 文ではステップ値が1073741824以上の場合必ずバグったループになるね、まあ仕方ないのかも
879デフォルトの名無しさん
2018/10/07(日) 19:43:19.94ID:0jrGYEp4 内部的にどんな計算してるか気になるところです
B は -1073741824,0,1073741824 なので
普通に考えると32ビットのオーバーフローはしてない筈
B は -1073741824,0,1073741824 なので
普通に考えると32ビットのオーバーフローはしてない筈
880デフォルトの名無しさん
2018/10/07(日) 19:55:29.49ID:0jrGYEp4 ああ、分かった
4ループめでオーバーフローするのか
3ループめで最終値に等しいと抜けるんじゃ無いわけか
4ループめでオーバーフローするのか
3ループめで最終値に等しいと抜けるんじゃ無いわけか
881デフォルトの名無しさん
2018/10/07(日) 19:57:49.70ID:2JwzOMBB バッチファイルのif文でパワーシェルのif -Orみたいな処理できますか?
882デフォルトの名無しさん
2018/10/07(日) 20:18:06.07ID:0jrGYEp4 IFの条件は2個の値を比較するだけ
複雑なOR,AND,XORとかあるんなら計算して結果を変数に入れる
それをIFの条件で使う
複雑なOR,AND,XORとかあるんなら計算して結果を変数に入れる
それをIFの条件で使う
883デフォルトの名無しさん
2018/10/08(月) 21:58:47.76ID:To7x1PVP あると便利なミニミニバッチ
DOS窓に今の時間を表示しておく
m.bat
@echo off
setlocal
set x=%date:~5% %time:~0,5% %*
title=%x%
exit /B 0
画面クリア
c.bat
@echo off
cls
exit /B 0
クリップボードクリア
cc.bat
@echo off
echo.|clip
echo clip clear
exit /B 0
DOS窓に今の時間を表示しておく
m.bat
@echo off
setlocal
set x=%date:~5% %time:~0,5% %*
title=%x%
exit /B 0
画面クリア
c.bat
@echo off
cls
exit /B 0
クリップボードクリア
cc.bat
@echo off
echo.|clip
echo clip clear
exit /B 0
884デフォルトの名無しさん
2018/10/09(火) 08:38:25.31ID:IIAdkwpd 画面クリアは普通にcls打つのと何が違うん?
885デフォルトの名無しさん
2018/10/09(火) 11:35:59.50ID:9WevvN1n886デフォルトの名無しさん
2018/10/09(火) 15:53:20.49ID:hXgFZ2lj >>884
一文字でいいので、お菓子を食べながらでもできる、大差
一文字でいいので、お菓子を食べながらでもできる、大差
887デフォルトの名無しさん
2018/10/10(水) 17:37:49.95ID:Wl83IH5q そういうしょぼいものならdoskeyでも使っとけ
888デフォルトの名無しさん
2018/10/11(木) 22:01:20.44ID:aIIKUaH8 1文字とか何かで誤爆しそうで危うすぎる
889デフォルトの名無しさん
2018/10/12(金) 00:17:12.22ID:xVyRtSc0 くだらねー
890デフォルトの名無しさん
2018/10/13(土) 05:37:42.36ID:YmkYzRio copyコマンドがおかしい
copy x+y z
とするとzに改行追加されている
copy /B x+y z
だと問題なしだが??
copy x+y z
とするとzに改行追加されている
copy /B x+y z
だと問題なしだが??
891デフォルトの名無しさん
2018/10/13(土) 07:34:07.12ID:TS7U3WRI >>890これね
ttp://shigechi-64.hatenablog.com/entry/20090717/1247798200
ttp://shigechi-64.hatenablog.com/entry/20090717/1247798200
892デフォルトの名無しさん
2018/10/13(土) 19:25:44.82ID:fQqIQRVk 改行じゃなくて 0x1A の 1byte なら付加されるが
echo test> a
dir a
copy a /b + nul /a
dir a
サイズが 1byte 増える
echo test> a
dir a
copy a /b + nul /a
dir a
サイズが 1byte 増える
893デフォルトの名無しさん
2018/10/14(日) 01:22:10.62ID:IWBgfNe4894デフォルトの名無しさん
2018/10/14(日) 06:32:47.46ID:5zXkQKrC テキストファイルのEOF(0x1A)は前世紀の遺物
昔のテキストエディタはファイルの末尾にEOF(0x1A)を付加していた。
仕様が古すぎて今じゃCOPYのヘルプを見ても、詳細が分からん状態
copy でファイルを連結する時は /a がデフォルト
ちなみに copy /a はEOF(0x1A)を付加するだけじゃないぞ
ファイルの途中に0x1Aが有ったらそれ以降が無くなってしまう怖い仕様
あと、echo xxx >> とかでテキストを追加したら末尾の0x1Aは勝手に削除される
昔のテキストエディタはファイルの末尾にEOF(0x1A)を付加していた。
仕様が古すぎて今じゃCOPYのヘルプを見ても、詳細が分からん状態
copy でファイルを連結する時は /a がデフォルト
ちなみに copy /a はEOF(0x1A)を付加するだけじゃないぞ
ファイルの途中に0x1Aが有ったらそれ以降が無くなってしまう怖い仕様
あと、echo xxx >> とかでテキストを追加したら末尾の0x1Aは勝手に削除される
895デフォルトの名無しさん
2018/10/14(日) 09:07:44.01ID:YBMQaeBO896デフォルトの名無しさん
2018/10/14(日) 18:08:37.67ID:gwXaIkcp chcp 65001入ってるスクリプトをUTF-8で保存して動かしてみたらエスケープ処理が酷い・・・
897デフォルトの名無しさん
2018/10/15(月) 01:28:48.04ID:yVBNeV/e898デフォルトの名無しさん
2018/10/16(火) 00:24:50.38ID:GeydM3gl >>897
The shift command has no effect on the %* batch parameter.
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/shift
SHIFT doesn't affect %*
https://stackoverflow.com/questions/12990480/shift-doesn-t-affect
The shift command has no effect on the %* batch parameter.
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/shift
SHIFT doesn't affect %*
https://stackoverflow.com/questions/12990480/shift-doesn-t-affect
899デフォルトの名無しさん
2018/10/25(木) 05:27:15.65ID:cKUaktMr echo %__APPDIR__%
C:\Windows\SysWOW64\
これが出る時32ビットのコマンドプロンプトらしいんですが
64ビットのコマンドプロンプトと何か違うんでしょうか
C:\Windows\SysWOW64\
これが出る時32ビットのコマンドプロンプトらしいんですが
64ビットのコマンドプロンプトと何か違うんでしょうか
900デフォルトの名無しさん
2018/10/27(土) 11:16:03.78ID:NXHcy7gB reg query "HKU\.DEFAULT\Control Panel\International"
表示された最後の行に
HKEY_USERS\.DEFAULT\Control Panel\International\・・・・・・
これは何だろうとレジストリエディタで見ると謎の文字で地球が3つ。
しかしメモ帳で表示出来る文字が
コンソール画面で表示出来ないのはダメだね
表示された最後の行に
HKEY_USERS\.DEFAULT\Control Panel\International\・・・・・・
これは何だろうとレジストリエディタで見ると謎の文字で地球が3つ。
しかしメモ帳で表示出来る文字が
コンソール画面で表示出来ないのはダメだね
901デフォルトの名無しさん
2018/10/27(土) 12:02:14.11ID:8ILfgags メモ帳「俺はだいぶ前からユニコード対応済みだから表示はするさ、ANSI(CP932)で保存はできなくてもなー」
902デフォルトの名無しさん
2018/10/27(土) 12:15:54.46ID:NXHcy7gB DIRコマンドでもユニコード対応してるよね。ちゃんと表示される。
でもこの地球文字はDIRコマンドでも表示されないようだ
フォントの問題かねえ
でもこの地球文字はDIRコマンドでも表示されないようだ
フォントの問題かねえ
903デフォルトの名無しさん
2018/10/27(土) 13:14:57.64ID:8ILfgags フォント問題だね、
メモ帳とかレジストリエディタはフォントリンクで表示用フォントが持ってないコードも他のフォントにあればそれで代用表示するから
メモ帳とかレジストリエディタはフォントリンクで表示用フォントが持ってないコードも他のフォントにあればそれで代用表示するから
904デフォルトの名無しさん
2018/10/27(土) 15:49:46.95ID:IkTi26EG なんだよ地球文字って?
905デフォルトの名無しさん
2018/10/27(土) 16:16:07.64ID:NXHcy7gB906デフォルトの名無しさん
2018/10/27(土) 16:59:45.97ID:r0d5m4I8 そんな文字(絵文字?)があるのか。
初めて見て、びっくり。(; ̄Д ̄)
初めて見て、びっくり。(; ̄Д ̄)
907デフォルトの名無しさん
2018/10/27(土) 17:04:05.15ID:NXHcy7gB それ、右上のリンクを押したら色々出て来て笑える
908デフォルトの名無しさん
2018/10/27(土) 22:17:46.77ID:8ILfgags for /f %a in ('dir /b') do echo %~za,%~ta
なんてことできたんだねえ、
dir /bは他の属性情報を削いでるからできないと思い込んでた
なんてことできたんだねえ、
dir /bは他の属性情報を削いでるからできないと思い込んでた
909デフォルトの名無しさん
2018/10/28(日) 08:43:59.31ID:uzLWPyey910デフォルトの名無しさん
2018/10/28(日) 11:17:25.40ID:ecNurFe9 dpnxfだったら単にファイル名にカレントのパスを付けるだけだからチグハグでも出来ちゃうんだぜ
aaa.txtっていうファイルがカレントに存在してなくても構わないってことだ
pushd d:\xxx\yyy
for /f %a in ("aaa.txt") do echo %~fa
ってやれば、d:\xxx\yyy\aaa.txtっていう架空のファイルのフルパス名を表示してくれる
aaa.txtっていうファイルがカレントに存在してなくても構わないってことだ
pushd d:\xxx\yyy
for /f %a in ("aaa.txt") do echo %~fa
ってやれば、d:\xxx\yyy\aaa.txtっていう架空のファイルのフルパス名を表示してくれる
911デフォルトの名無しさん
2018/10/28(日) 20:39:42.80ID:5N/SSOj8912デフォルトの名無しさん
2018/10/29(月) 00:52:54.50ID:m4kOmKq3 質問です。
データが以下のように入っているcsvファイルを
指定された削除対象のファイル名の行を削除したいです。
削除対象は別ファイルに一覧としてあります。
イメージとしては以下のようにしたいです。
bass.csv
================================
ファイル名,日付,時間
AAA,20111001,1300
AAB,20171001,1300
AAC,20171031,1300
AAD,20171031,1300
================================
delete.txt
================================
AAB
AAD
================================
output.csv
================================
ファイル名,日付,時間
AAA,20111001,1300
AAC,20171031,1300
================================
OSはWindows7
コマンド(batでもOK)でoutput.csvのような形にしたいのですが
上手くいかず、findstr /V で1行だけ試しにやってみたら理想と近い形になったのですが、
削除対象が複数になると上手くいきませんでした。
データが以下のように入っているcsvファイルを
指定された削除対象のファイル名の行を削除したいです。
削除対象は別ファイルに一覧としてあります。
イメージとしては以下のようにしたいです。
bass.csv
================================
ファイル名,日付,時間
AAA,20111001,1300
AAB,20171001,1300
AAC,20171031,1300
AAD,20171031,1300
================================
delete.txt
================================
AAB
AAD
================================
output.csv
================================
ファイル名,日付,時間
AAA,20111001,1300
AAC,20171031,1300
================================
OSはWindows7
コマンド(batでもOK)でoutput.csvのような形にしたいのですが
上手くいかず、findstr /V で1行だけ試しにやってみたら理想と近い形になったのですが、
削除対象が複数になると上手くいきませんでした。
913デフォルトの名無しさん
2018/10/29(月) 06:11:32.56ID:VYDzXbvz ?
findstr /v "AAA AAD" bass.csv>output.csv
で行くはずだがだめだった?
これが行ければ除外パターンを作るfor /f文を前段に作るだけで終わると思うが
findstr /v "AAA AAD" bass.csv>output.csv
で行くはずだがだめだった?
これが行ければ除外パターンを作るfor /f文を前段に作るだけで終わると思うが
914デフォルトの名無しさん
2018/10/29(月) 06:59:07.30ID:VYDzXbvz 行けるじゃん…そういえばfindstrは/gオプションあるから、for文も要らんね
findstr /v /g:delete.txt bass.csv>output.txt
なおfindstrの複数検索パターン指定は和文だと失敗する。
英数字の検索なら問題なし
findstr /v /g:delete.txt bass.csv>output.txt
なおfindstrの複数検索パターン指定は和文だと失敗する。
英数字の検索なら問題なし
915デフォルトの名無しさん
2018/10/29(月) 07:23:43.41ID:g89iCylL よくわからんが
FINDSTR /B にして検索文字列のあとに , を付ければいいんじゃね
FINDSTR /B にして検索文字列のあとに , を付ければいいんじゃね
916デフォルトの名無しさん
2018/10/29(月) 07:26:06.09ID:g89iCylL あ、/I も付ければいいかも
917デフォルトの名無しさん
2018/10/29(月) 08:03:30.04ID:VYDzXbvz 行頭以外にAAAやAADが記述されており、それは出力したいなら /B は合った方がいい
レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」★2 [ぐれ★]
- 【速報】 日経平均の下落率3%超す、財政懸念で長期金利上昇 [お断り★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- 台湾声明 「台湾は独立した主権国家、中国は台湾を統治したことがなく、中国は口出しする権利ない」 中国が高市首相に抗議で ★7 [お断り★]
- 【こんなの初めて…】民泊には既にキャンセルも 中国の渡航自粛で ★2 [ぐれ★]
- 【日刊】暇空茜、また敗訴🥸 [359965264]
- 『猟友会がクマ駆除を嫌がるなら潰すべき。職務を放棄するハンターから免許や銃を没収して罰金を取ろう』の声、ネットで上がる [932029429]
- 中国「高市が謝罪撤回しないとこれ全部なくなるけどどうする?」 [931948549]
- 台湾政党が高市首相「存立危機事態」発言に感謝の書簡「我々の心を強く奮い立たせるものでした」 [834922174]
- 高市のプライドはエベレストより高い。だから、発言を撤回できない [805596214]
- 【正論】有識者「高市早苗に合理的配慮をしなかった野党が悪い」 [175344491]
