拡張子が .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
■ このスレッドは過去ログ倉庫に格納されています
2017/03/11(土) 13:47:11.66ID:2LSSeyH1
662デフォルトの名無しさん
2018/07/24(火) 01:46:48.81ID:tpeQiESg blog96.fc2.com
663デフォルトの名無しさん
2018/07/24(火) 01:47:44.81ID:tpeQiESg aaaablog96.fc2.com とかいう文字が書き込めないみたいだな
664デフォルトの名無しさん
2018/07/24(火) 01:48:34.51ID:tpeQiESg aaaablog96.fc2.com/aaa.html
665デフォルトの名無しさん
2018/07/24(火) 01:48:55.71ID:tpeQiESg よくわからん
aaaablog96.fc2.com/blog.html
aaaablog96.fc2.com/blog.html
666デフォルトの名無しさん
2018/07/24(火) 01:49:23.86ID:tpeQiESg よくわからん
aaaa.blog.fc2.com/blog.html
aaaa.blog.fc2.com/blog.html
667デフォルトの名無しさん
2018/07/24(火) 01:50:02.74ID:tpeQiESg 面倒くさいから今度からURLは全部短縮URLを使おう
668デフォルトの名無しさん
2018/07/24(火) 02:13:31.40ID:JJ11wMVF 改行は[LF]じゃなくて[CR][LF]だと思うんだが、どうなんだろう?
669デフォルトの名無しさん
2018/07/24(火) 04:54:02.60ID:tpeQiESg Windowsの改行コードは[CR][LF]だよ
だけど、処理の一部として、Linux側にコマンドを投げ
その出力をログファイルに書き込むんだよ
Linuxの改行コードは[LF]
その同じログファイルにWindowsからも書き込むんだよ
こっちは当然[CR][LF]
まざるとうざくなるので、どちらかに統一したかったんだよ
だけど、処理の一部として、Linux側にコマンドを投げ
その出力をログファイルに書き込むんだよ
Linuxの改行コードは[LF]
その同じログファイルにWindowsからも書き込むんだよ
こっちは当然[CR][LF]
まざるとうざくなるので、どちらかに統一したかったんだよ
670デフォルトの名無しさん
2018/07/24(火) 06:25:50.86ID:c84rNbv+ どうでもいいが投稿練習は他でやれ
671デフォルトの名無しさん
2018/07/24(火) 12:14:08.82ID:HxFyIf/c Winでもコンソールは何故かLFだよ
混同すんなよ
混同すんなよ
672デフォルトの名無しさん
2018/07/24(火) 14:01:42.76ID:tpeQiESg >>671
コンソールがLFって意味わからん。
改行コードをどう出力するかはコマンド次第だろ
Windowsはデフォルトの改行コードがCR LFだってだけ
それに従わないプログラムもあるよ
(例 nkf は出力改行コードを変更できる)
コンソールがLFって意味わからん。
改行コードをどう出力するかはコマンド次第だろ
Windowsはデフォルトの改行コードがCR LFだってだけ
それに従わないプログラムもあるよ
(例 nkf は出力改行コードを変更できる)
673デフォルトの名無しさん
2018/07/24(火) 18:49:48.84ID:bSDo/9Xp PSでもcmdでもいいんだけど一行で文字列+連番を出力できない?
echo aaa + (1..10)
とかやると別々に出ちゃう
echo aaa + (1..10)
とかやると別々に出ちゃう
674デフォルトの名無しさん
2018/07/24(火) 18:57:15.74ID:g/ZYUHlh >>673
for /L %%i in (1,1,10) do echo aaa %%i
for /L %%i in (1,1,10) do echo aaa %%i
675デフォルトの名無しさん
2018/07/24(火) 19:19:46.86ID:g/ZYUHlh 連番の意味を履き違えていたかもしれない
676デフォルトの名無しさん
2018/07/24(火) 23:16:42.86ID:MWPxR8WZ >>673
いまいちよくわからんけど abc1 abc2 abc3 abc4 … って言うのが欲しいの?PS なら
[String]::Join(' ', (1..10 | %{ "abc$_" } ))
でいける
いまいちよくわからんけど abc1 abc2 abc3 abc4 … って言うのが欲しいの?PS なら
[String]::Join(' ', (1..10 | %{ "abc$_" } ))
でいける
677デフォルトの名無しさん
2018/07/24(火) 23:54:21.38ID:bSDo/9Xp678デフォルトの名無しさん
2018/07/26(木) 13:37:52.34ID:wiek7dkQ >>671
CRTがテキストモードの時にはCRを足してくれてるんだよ?
CRTがテキストモードの時にはCRを足してくれてるんだよ?
679デフォルトの名無しさん
2018/07/26(木) 18:09:38.18ID:B1r9j6T7 改行コードはコマンドに依存する
dir /? > d.txt
sort /? > s.txt
dir /? > d.txt
sort /? > s.txt
680デフォルトの名無しさん
2018/07/29(日) 20:28:04.05ID:AzlFD5Cm 質問です
ファイルをbatファイルにドラッグアンドドロップしてファイル名等を得たいのですが
2番目のドライブ名+パス名(ファイル名以外)が表示されません (%~dpと表示される)
どう記述すればいいのでしょうか
もう2時間悩んでおります
echo off
for %%f in (%*) do (
echo %%f
echo %%~dp
echo %%~nf
pause
)
ファイルをbatファイルにドラッグアンドドロップしてファイル名等を得たいのですが
2番目のドライブ名+パス名(ファイル名以外)が表示されません (%~dpと表示される)
どう記述すればいいのでしょうか
もう2時間悩んでおります
echo off
for %%f in (%*) do (
echo %%f
echo %%~dp
echo %%~nf
pause
)
681デフォルトの名無しさん
2018/07/29(日) 20:35:34.14ID:u49zNrL5682デフォルトの名無しさん
2018/07/29(日) 20:36:23.74ID:2kcGqgTd doの後のカッコ使うな
683デフォルトの名無しさん
2018/07/29(日) 23:23:01.82ID:AzlFD5Cm684デフォルトの名無しさん
2018/07/31(火) 00:35:30.31ID:eJ/lX+1f685デフォルトの名無しさん
2018/07/31(火) 04:53:16.45ID:vnodIDx/ Win10のコマンドプロンプト画面では改行と折り返しを区別してコピーできるようになったね。これすごく便利。
他に改善点とかあるのかな?
他に改善点とかあるのかな?
686デフォルトの名無しさん
2018/07/31(火) 05:31:48.07ID:R/dSWHzC687デフォルトの名無しさん
2018/08/03(金) 10:35:50.90ID:w2m/pEoW windows板のスレに書いてしまったので詳細はそちらを参照して頂きたいのですが
https://mevius.5ch.net/test/read.cgi/win/1381119881/327
この件について詳細をご存知の方あるいは解説されているサイトをご存知の方は
ご教示頂けないでしょうか?
https://mevius.5ch.net/test/read.cgi/win/1381119881/327
この件について詳細をご存知の方あるいは解説されているサイトをご存知の方は
ご教示頂けないでしょうか?
688デフォルトの名無しさん
2018/08/03(金) 12:24:06.93ID:r+5aCgkd 再現しない。よくソース見直してみて
おそらく単に遅延変数展開だけの問題に見える。
おそらく単に遅延変数展開だけの問題に見える。
689687
2018/08/04(土) 01:49:02.03ID:z4XK4aXP プログラムを問題の箇所だけ抜き出して実行しても同じ結果になります。
xxxを未定義状態にしてから%xxx%を引数にして実行するとやはり
「echo %aaa%|more」の結果がyyyと表示されます
当方の環境はWindows7 SP1です
これはこう動作するように作られた仕様なのかそれともあてにならない不思議動作なのか
cmdのバグなのか判断したいです
xxxを未定義状態にしてから%xxx%を引数にして実行するとやはり
「echo %aaa%|more」の結果がyyyと表示されます
当方の環境はWindows7 SP1です
これはこう動作するように作られた仕様なのかそれともあてにならない不思議動作なのか
cmdのバグなのか判断したいです
690デフォルトの名無しさん
2018/08/04(土) 03:29:11.21ID:XmDLxyoB ん?せやで?Windows 7はデフォルトの設定が違うんやで
しらんかったんか?cmd /?とかしてみな。
しらんかったんか?cmd /?とかしてみな。
691687
2018/08/04(土) 05:41:55.21ID:z4XK4aXP cmd /? にも setlocal /? にも echo /? にも
echoとパイプ併用時の環境変数の二重展開について記述は無いようです
echoとパイプ併用時の環境変数の二重展開について記述は無いようです
692デフォルトの名無しさん
2018/08/04(土) 07:14:19.75ID:ZE1/UEds ありまぁ〜す
693687
2018/08/04(土) 07:43:36.85ID:z4XK4aXP 別のものを見ているのかもしれません。
そちらには何と書いてありますか?
そちらには何と書いてありますか?
694デフォルトの名無しさん
2018/08/04(土) 07:51:40.55ID:HzKYXCJW パイプってCall文でサブルーチン処理してるような物だし、call文と同じ展開をすると思っとけばいいんじゃね?
695687
2018/08/04(土) 09:07:28.54ID:z4XK4aXP なるほど。
では逆にあえて二重展開したい場合はcallを使ったほうが無難でしょうか?
では逆にあえて二重展開したい場合はcallを使ったほうが無難でしょうか?
696デフォルトの名無しさん
2018/08/04(土) 11:22:09.92ID:HzKYXCJW call文で変数内変数が1ネスト展開されるのはパイプよりは有名だと思う
697デフォルトの名無しさん
2018/08/04(土) 11:35:44.15ID:1BI89n66 一番知られて無いのが、for /f文の('コマンド')が同じく二重展開されるってのかな
698デフォルトの名無しさん
2018/08/04(土) 11:40:02.48ID:1BI89n66 いや本当は、コマンドの中で^を付けてエスケープしないといけない場合があることは
結構知られているんだけど、それが二重展開のせいだってことが認識されてないわけで
結構知られているんだけど、それが二重展開のせいだってことが認識されてないわけで
699デフォルトの名無しさん
2018/08/04(土) 12:17:58.67ID:hhRJxbHb700687
2018/08/05(日) 05:37:23.17ID:DoWKU022 理解できました
みなさんありがとうございました
みなさんありがとうございました
701デフォルトの名無しさん
2018/08/06(月) 20:49:35.73ID:9+kXWEFM echo は結構罠
if "%errlorleverl%" ... も罠。
はやくバッチから救われたい…
if "%errlorleverl%" ... も罠。
はやくバッチから救われたい…
702デフォルトの名無しさん
2018/08/11(土) 19:21:13.27ID:vbsvSkjm 何が罠なのかわからん
703デフォルトの名無しさん
2018/08/11(土) 20:56:08.62ID:WNr/dTgn つづりを覚えられない奴には罠なんだろ w
704デフォルトの名無しさん
2018/08/11(土) 21:47:36.56ID:HlmNsX8I こういうことじゃないかな?
set ERRORLEVEL=0
hogecommand
if %ERRORLEVEL% gtr 0 goto :ERROR
これが絶対真にならず、ジャンプしないとか
set ERRORLEVEL=0
hogecommand
if %ERRORLEVEL% gtr 0 goto :ERROR
これが絶対真にならず、ジャンプしないとか
705デフォルトの名無しさん
2018/08/12(日) 03:12:06.01ID:lJZ67VC6 エラーは1以上とはかぎらないんだよな、コマンドによっては。
706デフォルトの名無しさん
2018/08/12(日) 09:09:39.33ID:pT5cyKVs >>703
echo hoge > test.txt
て書くと「hoge」の後の半角空白までがtest.txtに出力されるんだよ。
>>704
代入しなくても、errorlevel を環境変数として判定に使うと正常に動かない場合がある。
具体的には
echo n | comp A.exe B.exe >NUL 2>&1
if not "%ERRORLEVEL%"="0" (
:
このとき、何故か%ERRORLEVEL% は常に「0」。バイナリ不一致でも「0」。
echo n | comp A.exe B.exe >NUL 2>&1
if not errorlevel 1 (
:
だと正常に動く。何故だか分からない。
echo hoge > test.txt
て書くと「hoge」の後の半角空白までがtest.txtに出力されるんだよ。
>>704
代入しなくても、errorlevel を環境変数として判定に使うと正常に動かない場合がある。
具体的には
echo n | comp A.exe B.exe >NUL 2>&1
if not "%ERRORLEVEL%"="0" (
:
このとき、何故か%ERRORLEVEL% は常に「0」。バイナリ不一致でも「0」。
echo n | comp A.exe B.exe >NUL 2>&1
if not errorlevel 1 (
:
だと正常に動く。何故だか分からない。
707デフォルトの名無しさん
2018/08/12(日) 09:13:22.78ID:pT5cyKVs708デフォルトの名無しさん
2018/08/12(日) 09:20:16.40ID:yoDY/qSn if の比較は = じゃなくて == だろ
709デフォルトの名無しさん
2018/08/12(日) 09:40:11.52ID:pT5cyKVs710デフォルトの名無しさん
2018/08/12(日) 11:52:31.87ID:eNrGPpfD 何故か以前にいろいろ間違いすぎなんだよ
ゼロから書き直せ
ゼロから書き直せ
711デフォルトの名無しさん
2018/08/12(日) 14:40:43.26ID:IZr1Emsm712デフォルトの名無しさん
2018/08/12(日) 16:49:52.15ID:dh6WaJfS >>704>>706
ERRORLEVELは代入すると返却値として使えなくなるんじゃ
なかったっけ?
だからやるならば
set ERRORLEVEL=
だけにしないとだめなのでは
ただ、これをやってバッチ内でERRORLEVEL環境変数の
初期化みたいなことしてもうまく動かないこともあったような
気がするけど何か勘違いしてるんだろうな
ERRORLEVELは代入すると返却値として使えなくなるんじゃ
なかったっけ?
だからやるならば
set ERRORLEVEL=
だけにしないとだめなのでは
ただ、これをやってバッチ内でERRORLEVEL環境変数の
初期化みたいなことしてもうまく動かないこともあったような
気がするけど何か勘違いしてるんだろうな
713デフォルトの名無しさん
2018/08/12(日) 18:02:08.07ID:aLWFoJnR >>706
パイプの動作が原因だろう
パイプの右側は子タスクでの実行となる(おそらくは)
メインタスクに環境を引き継がないんだと思う
echo "a"|for /f %%i in ('find "a"') do set x=OK
echo.%x%
これで%x%には値が入らない
echo "a"|find "a"&set x=OK
なら%x%にはOKが入るが
echo "a"|(find "a"&set x=OK)
では%x%にはOKが入らない
パイプの動作が原因だろう
パイプの右側は子タスクでの実行となる(おそらくは)
メインタスクに環境を引き継がないんだと思う
echo "a"|for /f %%i in ('find "a"') do set x=OK
echo.%x%
これで%x%には値が入らない
echo "a"|find "a"&set x=OK
なら%x%にはOKが入るが
echo "a"|(find "a"&set x=OK)
では%x%にはOKが入らない
714デフォルトの名無しさん
2018/08/12(日) 18:09:31.24ID:aLWFoJnR >>713
下2つ&は&&の間違いだが、別に&だろうが&&だろうが(この場合の)結果は変わらない
下2つ&は&&の間違いだが、別に&だろうが&&だろうが(この場合の)結果は変わらない
715デフォルトの名無しさん
2018/08/12(日) 18:16:28.72ID:lJZ67VC6 パイプはcallと一緒だなやはり
716デフォルトの名無しさん
2018/08/12(日) 18:36:12.51ID:lJZ67VC6 setコマンドの長いヘルプの下の方に
「ユーザーがこれらの名前の変数を明示的に定義する場合、
その定義は下記の動的な定義を無効にします。」
と書かれてる。errorlevelをsetするのは回避した方がいいだろう
「ユーザーがこれらの名前の変数を明示的に定義する場合、
その定義は下記の動的な定義を無効にします。」
と書かれてる。errorlevelをsetするのは回避した方がいいだろう
717デフォルトの名無しさん
2018/08/12(日) 18:40:34.53ID:aLWFoJnR ついでに言っとくと
パイプはデータの受け手が子タスクになったけど
for /fの'コマンド'は送り手が子タスクになる
従って、'コマンド'の中で環境変数に値を入れても、メインタスクには引き継がれない
パイプはデータの受け手が子タスクになったけど
for /fの'コマンド'は送り手が子タスクになる
従って、'コマンド'の中で環境変数に値を入れても、メインタスクには引き継がれない
718デフォルトの名無しさん
2018/08/12(日) 21:23:34.47ID:pT5cyKVs >>710
難癖付けてばかりで話題提供もできない人はゼロから人生をやり直した方が(ry
難癖付けてばかりで話題提供もできない人はゼロから人生をやり直した方が(ry
719デフォルトの名無しさん
2018/08/12(日) 21:38:30.71ID:pT5cyKVs >>713
んー、俺はもうそこまで調べる気もなくてね…ほぼ諦めてる。
子タスクとかどこの文献見ればあるんだろう?
あってもなくても、んなテクニック、引継ぎできる代物でもあるまい…。
例えば、
type data.txt | cscript //nologo hoge.vbs
if not errorlevel 1 (
:
これも実は…駄目なのだ!!
VBScript側で Call WScript.Quit(1)
で抜けられれば引っかかるが…
想定外の変なデータを食わされてランタイムエラーで落ちた場合には引っかからない。
cscript はスクリプトエンジンだから別物扱いしとこ…てなところで。
hoge.vbs が正常終了する直前に success.txt を空で作るようにしといて。
del success.txt
type data.txt | cscript //nologo hoge.vbs
if exist success.txt (
:
)
del success.txt
こんな感じにするしかなかったし、これならせめて引継ぎができると思う。
んー、俺はもうそこまで調べる気もなくてね…ほぼ諦めてる。
子タスクとかどこの文献見ればあるんだろう?
あってもなくても、んなテクニック、引継ぎできる代物でもあるまい…。
例えば、
type data.txt | cscript //nologo hoge.vbs
if not errorlevel 1 (
:
これも実は…駄目なのだ!!
VBScript側で Call WScript.Quit(1)
で抜けられれば引っかかるが…
想定外の変なデータを食わされてランタイムエラーで落ちた場合には引っかからない。
cscript はスクリプトエンジンだから別物扱いしとこ…てなところで。
hoge.vbs が正常終了する直前に success.txt を空で作るようにしといて。
del success.txt
type data.txt | cscript //nologo hoge.vbs
if exist success.txt (
:
)
del success.txt
こんな感じにするしかなかったし、これならせめて引継ぎができると思う。
720デフォルトの名無しさん
2018/08/12(日) 21:45:20.77ID:pT5cyKVs あ、ごめん。
if not errorlevel 1 (
正常終了処理
) else (
異常終了処理
)
て書くべきだった
if not errorlevel 1 (
正常終了処理
) else (
異常終了処理
)
て書くべきだった
721デフォルトの名無しさん
2018/08/13(月) 00:05:28.17ID:MtAcIApx 勉強になる話題だけど、バッチファイルは言語仕様の規模に比して闇が深すぎると思う
722デフォルトの名無しさん
2018/08/13(月) 00:46:15.48ID:bTGAGeMt723デフォルトの名無しさん
2018/08/13(月) 03:10:07.37ID:EnLsbSTB >>719
子タスクと言ったのは俺の推測(想像)でしかないから
データの受け渡しを行うのには、送り手と受け手の両者が存在しないと変だろうってことからね
あと、タスクというのも、適当な概念だから
親の環境を引き継いで生成された子環境のことね
実体はスレッドだろうと想像するけど
子タスクと言ったのは俺の推測(想像)でしかないから
データの受け渡しを行うのには、送り手と受け手の両者が存在しないと変だろうってことからね
あと、タスクというのも、適当な概念だから
親の環境を引き継いで生成された子環境のことね
実体はスレッドだろうと想像するけど
724デフォルトの名無しさん
2018/08/13(月) 10:15:08.27ID:aFOAPcea >>703
綴りといえばenabledelayedexpantionも罠レベルだよ・・・誰だこれ考えたの('A`)
綴りといえばenabledelayedexpantionも罠レベルだよ・・・誰だこれ考えたの('A`)
725デフォルトの名無しさん
2018/08/13(月) 10:38:49.38ID:WsZfoIsu なるほど引っかかってる
726デフォルトの名無しさん
2018/08/15(水) 02:41:45.12ID:xax+OHuY 元の英語がわかれば
enable delayed expansion
を繋げただけなんだよ
enable delayed expansion
を繋げただけなんだよ
727デフォルトの名無しさん
2018/08/15(水) 13:28:33.22ID:j7d0pce0 質問させてください。
Linuxでいうところの、/dev/nullで標準入力待ちを終了させるのはどうすればいいのでしょうか。
具体的には、Windows向けのopensslコマンドを実行しています。
openssl s_client -connect 〜とやると標準出力が一通り出たところで入力待ちになる仕様で、
コマンドプロンプト上だとCtrl+Cで止めてあげる必要があります。
Linuxだと、末尾に< /dev/nullで終わらせられるのですが、Windowsバッチで同じように終了させる方法は無いでしょうか。
Linuxでいうところの、/dev/nullで標準入力待ちを終了させるのはどうすればいいのでしょうか。
具体的には、Windows向けのopensslコマンドを実行しています。
openssl s_client -connect 〜とやると標準出力が一通り出たところで入力待ちになる仕様で、
コマンドプロンプト上だとCtrl+Cで止めてあげる必要があります。
Linuxだと、末尾に< /dev/nullで終わらせられるのですが、Windowsバッチで同じように終了させる方法は無いでしょうか。
728デフォルトの名無しさん
2018/08/15(水) 13:50:50.34ID:o8lgioa7 < nul
じゃダメなの?
じゃダメなの?
729デフォルトの名無しさん
2018/08/15(水) 13:54:24.10ID:j7d0pce0 >>728
書いてなくてすみません。それだとダメでした。
書いてなくてすみません。それだとダメでした。
730デフォルトの名無しさん
2018/08/15(水) 14:06:33.66ID:o8lgioa7731デフォルトの名無しさん
2018/08/15(水) 14:36:26.98ID:j7d0pce0 >>730
参考サイトありがとうございます。
先ほど教えていただいたのと同じ< nulですよね。
サンプルコマンドの通り打ってみても入力待ちで止まります…。
念のためOpenSSLを入れ直しても変わりませんでした。
サンプルでパイプで渡してる直前まで( < nul 2> nul)で試すと、
実行結果がダーっと出て、入力待ちで止まるんですよね…。
参考サイトありがとうございます。
先ほど教えていただいたのと同じ< nulですよね。
サンプルコマンドの通り打ってみても入力待ちで止まります…。
念のためOpenSSLを入れ直しても変わりませんでした。
サンプルでパイプで渡してる直前まで( < nul 2> nul)で試すと、
実行結果がダーっと出て、入力待ちで止まるんですよね…。
732デフォルトの名無しさん
2018/08/15(水) 15:17:17.37ID:j7d0pce0 下のサイトのやり方も参考にしつつやってみましたが、どれも結果は変わらずでした。
後出しですみませんが、当方の環境はWin10 Pro 1803、opensslは1.0.2m.1.0.2oでやってました。
https://stackoverflow.com/questions/25760596/how-to-terminate-openssl-s-client-after-connection
回答くださった方、ありがとうございました。
もしやってみて、何言ってんだ、できたぞ?という方いらっしゃいましたら教えていただければ幸いです。
後出しですみませんが、当方の環境はWin10 Pro 1803、opensslは1.0.2m.1.0.2oでやってました。
https://stackoverflow.com/questions/25760596/how-to-terminate-openssl-s-client-after-connection
回答くださった方、ありがとうございました。
もしやってみて、何言ってんだ、できたぞ?という方いらっしゃいましたら教えていただければ幸いです。
733デフォルトの名無しさん
2018/08/15(水) 15:19:22.69ID:xax+OHuY 制御文字を入力できるエディタ(サクラエディタ等)で
バッチを開いて
nulの代りに[0x03]か0x04の制御コード入れてみては?
バッチを開いて
nulの代りに[0x03]か0x04の制御コード入れてみては?
734デフォルトの名無しさん
2018/08/15(水) 15:25:45.29ID:jNJ7KLOy >>732
普段OpenSSLは使わないけどたまたまインストールしてあったOpenSSL 1.1.0hで出来たよ
コマンドはこう
openssl s_client -connect example.com:443 < nul 2> nul | openssl x509 -text | findstr Not
普段OpenSSLは使わないけどたまたまインストールしてあったOpenSSL 1.1.0hで出来たよ
コマンドはこう
openssl s_client -connect example.com:443 < nul 2> nul | openssl x509 -text | findstr Not
735デフォルトの名無しさん
2018/08/15(水) 15:59:22.79ID:j7d0pce0 >>734
試していただいてありがとうございます。
そのコマンドを実行したときなのですが、コンソールが返ってくるまで1分ほどかかりませんか? すぐ返りますか?
< nulの有無に関わらず1分ほど待つので、単にタイムアウトか何かで終了しているのかなと思っております。
nulを入力として受け取っているなら、すぐに1個目のパイプより前のコマンドは終わるはずだと思いまして…。
試していただいてありがとうございます。
そのコマンドを実行したときなのですが、コンソールが返ってくるまで1分ほどかかりませんか? すぐ返りますか?
< nulの有無に関わらず1分ほど待つので、単にタイムアウトか何かで終了しているのかなと思っております。
nulを入力として受け取っているなら、すぐに1個目のパイプより前のコマンドは終わるはずだと思いまして…。
736デフォルトの名無しさん
2018/08/15(水) 16:01:57.88ID:jNJ7KLOy >>735
すぐ返ってくるよ
すぐ返ってくるよ
737デフォルトの名無しさん
2018/08/15(水) 16:09:56.08ID:j7d0pce0738733
2018/08/15(水) 16:14:15.33ID:xax+OHuY >>733
1)コマンドプロンプトで下記のように入力し、hoge.txtを作る
copy con hoge.txt[Enter]
[Ctrl+d]
[Ctrl+z]
2)バッチの方で
<hoge.txt
とすればコンソールでCtrl+Dを入力したのと同じ効果となるはず
1)コマンドプロンプトで下記のように入力し、hoge.txtを作る
copy con hoge.txt[Enter]
[Ctrl+d]
[Ctrl+z]
2)バッチの方で
<hoge.txt
とすればコンソールでCtrl+Dを入力したのと同じ効果となるはず
739デフォルトの名無しさん
2018/08/15(水) 16:47:26.04ID:j7d0pce0740デフォルトの名無しさん
2018/08/15(水) 21:05:55.42ID:cg3gjcxB 悪いけど、Windowsバッチに鉄板を求めるのも、追いかけるのも無駄。
歴史的経緯でそうなってしまっている。マトモな資料なんかありゃない。
NULの解釈がコマンドによって違ったって全く不思議じゃあない。
犬のクソをクソだと知りつつカリントウだと思いながら食わなければならないような、そんな代物。
好きで書いてる奴なんかほとんどいないと思う。
バッチで書いた方が良いと判断できる材料がなければVBscriptやPowerShellで書いた方が遥かにいい。
環境が許せば他の言語の導入を検討するのも大いにいい。
よく知られたコマンドをよく知られたイディオム下で使うのでもなければ、バッチでなんか書かない方がいい。
それでもクソみたいにハマることがあるんだから。
歴史的経緯でそうなってしまっている。マトモな資料なんかありゃない。
NULの解釈がコマンドによって違ったって全く不思議じゃあない。
犬のクソをクソだと知りつつカリントウだと思いながら食わなければならないような、そんな代物。
好きで書いてる奴なんかほとんどいないと思う。
バッチで書いた方が良いと判断できる材料がなければVBscriptやPowerShellで書いた方が遥かにいい。
環境が許せば他の言語の導入を検討するのも大いにいい。
よく知られたコマンドをよく知られたイディオム下で使うのでもなければ、バッチでなんか書かない方がいい。
それでもクソみたいにハマることがあるんだから。
741デフォルトの名無しさん
2018/08/15(水) 21:14:01.94ID:OWPSpuGG UNCパスを一向に解釈しないのがとにかく糞だと思う
742デフォルトの名無しさん
2018/08/15(水) 21:52:07.27ID:X+03HcfZ 移動はできないけど解釈はできるでしょ…
743740
2018/08/15(水) 21:52:48.84ID:X+03HcfZ xcopy のヘルプは酷い。
Vistaでは「推奨されない。使わないで。robocopyを使って」みたいな文言が出てきた。理由は記述なし。
この文言、7以降では消えた。
ネットワーク越しにxcopy中に通信が切れたらどうなるか、MSは知ってたはずなんだが。
xcopyを使いまくってるクソベンダーどもから「直しきれない。フザけんな!」とでも突き上げを食らったんだろうか?
こういうところも本当に信用できない。
Vistaでは「推奨されない。使わないで。robocopyを使って」みたいな文言が出てきた。理由は記述なし。
この文言、7以降では消えた。
ネットワーク越しにxcopy中に通信が切れたらどうなるか、MSは知ってたはずなんだが。
xcopyを使いまくってるクソベンダーどもから「直しきれない。フザけんな!」とでも突き上げを食らったんだろうか?
こういうところも本当に信用できない。
744740
2018/08/15(水) 21:58:51.70ID:X+03HcfZ >>741
cmd「あ、pushdとかでヨロ」
ネットワーク系で言えばpingが酷い。
if errorlevel そのものが効かない。エラーしたらズルズルっと抜ける。
あ、某SIer(富〇通)のバッチを思い出した。
pingでTCPの疎通確認?エラー処理なし?
バッチとか以前の問題だった。
富〇通は日本から消え去ればいいと思った。
cmd「あ、pushdとかでヨロ」
ネットワーク系で言えばpingが酷い。
if errorlevel そのものが効かない。エラーしたらズルズルっと抜ける。
あ、某SIer(富〇通)のバッチを思い出した。
pingでTCPの疎通確認?エラー処理なし?
バッチとか以前の問題だった。
富〇通は日本から消え去ればいいと思った。
745740
2018/08/15(水) 22:00:15.25ID:X+03HcfZ おいおい、さっきからレスに「ドット・エグゼ」を半角英数で書くと弾かれるようになってるぜ…
なんだいこりゃ。
なんだいこりゃ。
746デフォルトの名無しさん
2018/08/16(木) 00:37:28.93ID:fpSDK1Rz 標準入力から読むんじゃなければ <nul なんか無意味だろうに...
747デフォルトの名無しさん
2018/08/16(木) 00:47:34.46ID:nXvfu44n pingは標準エラー出力の文言で処理するのが慣例だろ...
748デフォルトの名無しさん
2018/08/16(木) 04:14:43.69ID:W93QKVeg エロ動画.avi .exe
749デフォルトの名無しさん
2018/08/16(木) 06:00:01.74ID:3IMawj9A すみません、CMDを最近やり始めたのですが
ネットで検索すると%Aと%%Aのように「%」が1つ付く場合と2つ付く場合があったのですが
どういう違いがあるのでしょうか?
ネットで検索すると%Aと%%Aのように「%」が1つ付く場合と2つ付く場合があったのですが
どういう違いがあるのでしょうか?
750デフォルトの名無しさん
2018/08/16(木) 06:18:11.25ID:nXvfu44n >>749
%Aはfor文内でのみつかう変数。for文をコマンドラインから直接実行する場合は%A
バッチスクリプト内で記述する場合は%%Aとする。
for /? (またはhelp for)
で表示されるヘルプの上の方に書かれている。
%Aはfor文内でのみつかう変数。for文をコマンドラインから直接実行する場合は%A
バッチスクリプト内で記述する場合は%%Aとする。
for /? (またはhelp for)
で表示されるヘルプの上の方に書かれている。
751デフォルトの名無しさん
2018/08/16(木) 11:22:52.16ID:hWBtBIZ+ batファイルで任意のプログラムを実行し、一定時間後に強制終了させる(画面を閉じる)という処理は実現可能ですか?
任意のプログラムも同じDOS画面上で走ります。
タイマーでtaskkillを実行してcmdを終了させるというのを考えたんですが、cmdが複数あると使えないので他に方法があれば知りたいです。
任意のプログラムも同じDOS画面上で走ります。
タイマーでtaskkillを実行してcmdを終了させるというのを考えたんですが、cmdが複数あると使えないので他に方法があれば知りたいです。
752デフォルトの名無しさん
2018/08/16(木) 15:41:05.25ID:KoNkkRtT753デフォルトの名無しさん
2018/08/16(木) 19:34:15.23ID:hWBtBIZ+ >>752
ありがとうございます!
ありがとうございます!
754デフォルトの名無しさん
2018/08/16(木) 20:50:06.40ID:qKowi4/2 >>747
否。
pingはICMP。pingが通ってもTCPが通るという保証は無い。
逆に、pingは返さないがTCPが通る環境だってある。
ただでさえpingコマンドの動きはおかしいのに、pingでTCP疎通確認しました!というのが大手SIer(富〇通とか)が首を釣るべきポイント。
ダミーの共有フォルダを用意して
dir \\hoge.local\hoge
とかでSMBを経由したTCPの疎通が確認できるんだぜ??
頭が悪いとしか言いようがない。
もう一度言う。
pingではTCPの疎通は「絶対に確認できない」
否。
pingはICMP。pingが通ってもTCPが通るという保証は無い。
逆に、pingは返さないがTCPが通る環境だってある。
ただでさえpingコマンドの動きはおかしいのに、pingでTCP疎通確認しました!というのが大手SIer(富〇通とか)が首を釣るべきポイント。
ダミーの共有フォルダを用意して
dir \\hoge.local\hoge
とかでSMBを経由したTCPの疎通が確認できるんだぜ??
頭が悪いとしか言いようがない。
もう一度言う。
pingではTCPの疎通は「絶対に確認できない」
755デフォルトの名無しさん
2018/08/16(木) 20:52:58.55ID:qKowi4/2 言っとくけど、LinuxのpingでもTCPの疎通は確認できないからな。分かってると思うけど。
756デフォルトの名無しさん
2018/08/16(木) 21:07:41.39ID:t6OwQxX1757デフォルトの名無しさん
2018/08/16(木) 21:10:18.18ID:nXvfu44n プロトコルが別物というのはその通りだな、
コマンドプロンプトでのエラーハンドリングの話かと思ったわ(分かっちゃいるとは思うが)
コマンドプロンプトでのエラーハンドリングの話かと思ったわ(分かっちゃいるとは思うが)
758デフォルトの名無しさん
2018/08/16(木) 22:17:08.25ID:fpSDK1Rz >>754
わなくらい以降、SMBを通すようなネットワーク組むような業者はやばいだろ
わなくらい以降、SMBを通すようなネットワーク組むような業者はやばいだろ
759デフォルトの名無しさん
2018/08/16(木) 22:22:12.09ID:3IMawj9A >>750
ありがとうございます!理解しました。
ありがとうございます!理解しました。
760デフォルトの名無しさん
2018/08/16(木) 22:30:01.84ID:3IMawj9A このスレは1年半前に立ってまだ760レスぐらいですが
ここ1ヶ月半で見ると200レスぐらい書き込みがあるので
CMDの人気が出てきたということでよいのでしょうか?
ここ1ヶ月半で見ると200レスぐらい書き込みがあるので
CMDの人気が出てきたということでよいのでしょうか?
761デフォルトの名無しさん
2018/08/16(木) 22:36:21.06ID:qKowi4/2762デフォルトの名無しさん
2018/08/16(木) 22:51:43.40ID:t6OwQxX1■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」★2 [ぐれ★]
- 【速報】 日経平均の下落率3%超す、財政懸念で長期金利上昇 [お断り★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- 台湾声明 「台湾は独立した主権国家、中国は台湾を統治したことがなく、中国は口出しする権利ない」 中国が高市首相に抗議で ★7 [お断り★]
- 【こんなの初めて…】民泊には既にキャンセルも 中国の渡航自粛で ★2 [ぐれ★]
- 【日刊】暇空茜、また敗訴🥸 [359965264]
- 『猟友会がクマ駆除を嫌がるなら潰すべき。職務を放棄するハンターから免許や銃を没収して罰金を取ろう』の声、ネットで上がる [932029429]
- 中国「高市が謝罪撤回しないとこれ全部なくなるけどどうする?」 [931948549]
- 台湾政党が高市首相「存立危機事態」発言に感謝の書簡「我々の心を強く奮い立たせるものでした」 [834922174]
- 高市のプライドはエベレストより高い。だから、発言を撤回できない [805596214]
- 【正論】有識者「高市早苗に合理的配慮をしなかった野党が悪い」 [175344491]
