拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる
質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。
※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。
前スレ
【.cmd】 バッチファイルスクリプト %11 【.bat】©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1424858999/
【.cmd】 バッチファイルスクリプト %12 【.bat】
https://mevius.5ch.net/test/read.cgi/tech/1489207631/
それ以前の過去スレ
%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】 バッチファイルスクリプト %13 【.bat】
■ このスレッドは過去ログ倉庫に格納されています
2018/11/21(水) 14:52:07.84ID:v84I4o+L
241デフォルトの名無しさん
2019/06/13(木) 17:24:03.99ID:rRFcU9uI >>240
でもファイル名使うとダメだな
でもファイル名使うとダメだな
242デフォルトの名無しさん
2019/06/14(金) 15:25:04.04ID:/ScwnRxc 誰もツッコミ無しか
SendTo とか D&D は何もしなくても自動的に
送り側のディレクトリに移動するんだが
SendTo とか D&D は何もしなくても自動的に
送り側のディレクトリに移動するんだが
243デフォルトの名無しさん
2019/06/14(金) 15:52:59.01ID:/ScwnRxc SendTo にバッチ本体じゃなくて
ショートカットを入れたのかね
でもプロパティの作業フォルダを空にすればいい
怪しげな引数を利用するよりマシだろ
ショートカットを入れたのかね
でもプロパティの作業フォルダを空にすればいい
怪しげな引数を利用するよりマシだろ
244デフォルトの名無しさん
2019/06/15(土) 09:44:04.71ID:wrdBniJb 7-ZIPの 7za.exe でワイルドカード使ったときにサブフォルダを除外するにはどうしたらいいでしょうか?
-r-を付けてもなぜか効かないんですが
7za.exe a XXX.zip -r- *
-r-を付けてもなぜか効かないんですが
7za.exe a XXX.zip -r- *
245デフォルトの名無しさん
2019/06/15(土) 12:34:19.95ID:/kIGVJHV >>244
7zaは経験ないが7zと同じだろう
引数に*としたらサブディレクトリも含む
サブディレクトリを指定したら、それ以下の全部を含む
そこでスイッチは関係ない
ファイルだけ圧縮したいなら
@echo off
path C:\Program Files\7-Zip;C:\WINDOWS\system32;C:\WINDOWS;
if exist archive.7z del archive.7z
set a=
setlocal enabledelayedexpansion
for %%i in (*) do set a=!a! "%%i"
7z a archive.7z !a%!
pause
7zaは経験ないが7zと同じだろう
引数に*としたらサブディレクトリも含む
サブディレクトリを指定したら、それ以下の全部を含む
そこでスイッチは関係ない
ファイルだけ圧縮したいなら
@echo off
path C:\Program Files\7-Zip;C:\WINDOWS\system32;C:\WINDOWS;
if exist archive.7z del archive.7z
set a=
setlocal enabledelayedexpansion
for %%i in (*) do set a=!a! "%%i"
7z a archive.7z !a%!
pause
246デフォルトの名無しさん
2019/06/15(土) 12:36:06.42ID:/kIGVJHV ああ、すまん
.zip に置き換えて
.zip に置き換えて
247デフォルトの名無しさん
2019/06/15(土) 13:27:41.74ID:/kIGVJHV >>245はファイル名に!^があると誤動作するので
@echo off
path C:\Program Files\7-Zip;C:\WINDOWS\system32;C:\WINDOWS;
if exist XXX.zip del XXX.zip
for %%i in (*) do 7za a XXX.zip "%%i"
pause
にした方がいいかもね
ちなみにInfo-ZIPのzip.exeでは
zip XXX.zip *
だけでいいが空のサブディレクトリを作成する
@echo off
path C:\Program Files\7-Zip;C:\WINDOWS\system32;C:\WINDOWS;
if exist XXX.zip del XXX.zip
for %%i in (*) do 7za a XXX.zip "%%i"
pause
にした方がいいかもね
ちなみにInfo-ZIPのzip.exeでは
zip XXX.zip *
だけでいいが空のサブディレクトリを作成する
248デフォルトの名無しさん
2019/06/17(月) 08:25:16.99ID:gSWoSWwj .commandでターミナルを開いてpython3 /hoge/test.pyを入力、エンターを送信してpyファイルを実行したいのですがご教授ください。m(_ _)m
echo python3 /hoge/test.pyとするとターミナルに入力はされるのですが、pythonが実行されません。
ちなみに.batでは、
cd C:\hoge\
cmd /k python test.py
でpythonを実行する事ができました。
.commandで同じ事をするにはどうすればいいでしょうか?
echo python3 /hoge/test.pyとするとターミナルに入力はされるのですが、pythonが実行されません。
ちなみに.batでは、
cd C:\hoge\
cmd /k python test.py
でpythonを実行する事ができました。
.commandで同じ事をするにはどうすればいいでしょうか?
249デフォルトの名無しさん
2019/06/17(月) 13:48:44.19ID:gSWoSWwj 248です
解決しました。m(_ _)m
echoなんか付けずに
python3 /hoge/test.py
でpythonが実行できました。ありがとうございます。
解決しました。m(_ _)m
echoなんか付けずに
python3 /hoge/test.py
でpythonが実行できました。ありがとうございます。
250デフォルトの名無しさん
2019/06/17(月) 18:30:49.93ID:/bUEZ7B5 バッチファイルからbeep音を出す
echo ^G >beep.bat
^G は コントロールキーとG
beep.batを実行すると音は出るが、エラーも出るので
type beep.bat
のほうがよい
beep.bat 2>nul
でエラーは消えるはずだが、なぜか音も出ないことがある
こういう基本コマンドがなぜかない
echo ^G >beep.bat
^G は コントロールキーとG
beep.batを実行すると音は出るが、エラーも出るので
type beep.bat
のほうがよい
beep.bat 2>nul
でエラーは消えるはずだが、なぜか音も出ないことがある
こういう基本コマンドがなぜかない
251デフォルトの名無しさん
2019/06/17(月) 21:28:51.00ID:KEFOQI4b >>250
beep.bat
でエラーが出るのは当然
beep.bat の中身は 「あ」 と一文字書いてあるのと同じようなものだから
コマンドになってない
だから
echo ^G> beep.dat
echo type beep.txt> beep.bat
とするか
echo @echo ^G> beep.bat
とすれば
beep.bat実行でエラーは出ない
ちなみに@echoとしてechoの頭に@をつける理由は
そうしないと、
実行コマンドが表示される時点で一回音が鳴り
echo が実行されることによって音が鳴るので
結果として2回音が鳴ることになるため
beep.bat
でエラーが出るのは当然
beep.bat の中身は 「あ」 と一文字書いてあるのと同じようなものだから
コマンドになってない
だから
echo ^G> beep.dat
echo type beep.txt> beep.bat
とするか
echo @echo ^G> beep.bat
とすれば
beep.bat実行でエラーは出ない
ちなみに@echoとしてechoの頭に@をつける理由は
そうしないと、
実行コマンドが表示される時点で一回音が鳴り
echo が実行されることによって音が鳴るので
結果として2回音が鳴ることになるため
252デフォルトの名無しさん
2019/06/17(月) 22:13:21.14ID:KEFOQI4b 無料のエディタでも制御文字を扱えるものがあるので
そういったものを使うと便利かと思います
たとえばNotepad++では制御文字を表示することができます
https://www.howtonote.jp/notepadplusplus/install/index10.html
入力は編集-文字コード表から
サクラエディタは制御文字を入力できるのに表示する方法はわかりませんでした
(自分はユーザではなく詳しくないので実際はあるのかもしれない)
http://sakura-editor.sourceforge.net/htmlhelp/HLP000255.html
そういったものを使うと便利かと思います
たとえばNotepad++では制御文字を表示することができます
https://www.howtonote.jp/notepadplusplus/install/index10.html
入力は編集-文字コード表から
サクラエディタは制御文字を入力できるのに表示する方法はわかりませんでした
(自分はユーザではなく詳しくないので実際はあるのかもしれない)
http://sakura-editor.sourceforge.net/htmlhelp/HLP000255.html
253デフォルトの名無しさん
2019/06/17(月) 22:46:13.03ID:kzHmUXK8 トリッキーだが、コントロールコードを直接書かないで実現することもできるね
ここの過去ログ%11にあったけど
for /f "delims=0" %%I in ('cmd /u /c echo 〇') do set BEL=%%I
echo %BEL%
ここの過去ログ%11にあったけど
for /f "delims=0" %%I in ('cmd /u /c echo 〇') do set BEL=%%I
echo %BEL%
254デフォルトの名無しさん
2019/06/17(月) 23:09:42.80ID:+j+1wiRe バッチにバイナリエディタで入力したら
どんな値でも変数に代入出来るのかな?
どんな値でも変数に代入出来るのかな?
255デフォルトの名無しさん
2019/06/17(月) 23:10:40.48ID:KEFOQI4b256デフォルトの名無しさん
2019/06/18(火) 17:34:44.10ID:eep67jJ0 cls|choice 1>nul 2>nul
257デフォルトの名無しさん
2019/06/18(火) 19:33:08.53ID:KnqBLmEX >>251
なるほど、どっちもありですね
echo ^G> beep.dat
echo type beep.dat> beep.bat
echo @echo ^G> beep.bat
@echo のこんな使い方は初めて見た、知らなかったです
なるほど、どっちもありですね
echo ^G> beep.dat
echo type beep.dat> beep.bat
echo @echo ^G> beep.bat
@echo のこんな使い方は初めて見た、知らなかったです
258デフォルトの名無しさん
2019/06/23(日) 06:51:19.02ID:dygsK1bo Windows Terminal早速試せるみたい。
Microsoft’s new Windows Terminal now available to download for Windows 10 - The Verge
https://www.theverge.com/2019/6/22/18701365/microsoft-windows-terminal-10-download-store-features
Microsoft’s new Windows Terminal now available to download for Windows 10 - The Verge
https://www.theverge.com/2019/6/22/18701365/microsoft-windows-terminal-10-download-store-features
259デフォルトの名無しさん
2019/06/23(日) 12:23:35.72ID:Lc+3aX4/ >>258 そこに書いてある
Microsoftはまた、Linux用のWindows Subsystem(WSL)の
パフォーマンスを向上させるために、
完全なLinuxカーネルをWindows 10に搭載することに取り組んでいます。
こっちの方が気になるなあ
Microsoftはまた、Linux用のWindows Subsystem(WSL)の
パフォーマンスを向上させるために、
完全なLinuxカーネルをWindows 10に搭載することに取り組んでいます。
こっちの方が気になるなあ
260デフォルトの名無しさん
2019/06/23(日) 12:41:20.55ID:8sWJbccc WSL2でしょ
261デフォルトの名無しさん
2019/06/25(火) 00:46:23.52ID:6j3DQJ1O Windows7からWindows10に変えたら、IME単語登録用ソフトのIMECが動かない。
神は死んだ・・・
神は死んだ・・・
262デフォルトの名無しさん
2019/06/25(火) 19:20:48.71ID:sBqqHKRF chcp 65001
if "hoge"=="hoge" (
echo あああ
echo いいい
)
pause
上みたいなbatをUTF-8で保存して実行すると
'o' is not recognized as an internal or external command,
と言われてエラーになるんですが何故ですか?
if "hoge"=="hoge" (
echo あああ
echo いいい
)
pause
上みたいなbatをUTF-8で保存して実行すると
'o' is not recognized as an internal or external command,
と言われてエラーになるんですが何故ですか?
263デフォルトの名無しさん
2019/06/25(火) 19:23:12.67ID:sBqqHKRF echoの前に半角スペース3つです
264デフォルトの名無しさん
2019/06/25(火) 19:52:58.06ID:O4gheXA8 良く分からんが >>258 の奴でやると
もしかしたら上手くいくかもね
もしかしたら上手くいくかもね
265デフォルトの名無しさん
2019/06/25(火) 19:58:43.79ID:O4gheXA8 chcp 65001
if "hoge"=="hoge" (
echo あああ& rem
echo いいい
)
pause
if "hoge"=="hoge" (
echo あああ& rem
echo いいい
)
pause
266デフォルトの名無しさん
2019/06/25(火) 20:17:53.34ID:O4gheXA8 行末が非asciiだと不味いようだ
267デフォルトの名無しさん
2019/06/25(火) 20:18:26.26ID:sBqqHKRF268デフォルトの名無しさん
2019/06/25(火) 20:34:02.78ID:O4gheXA8 上手く動作しないという事はバグじゃないですかね
それ以上はcmdの作者じゃないので分からん
それ以上はcmdの作者じゃないので分からん
269デフォルトの名無しさん
2019/06/25(火) 20:49:18.67ID:yTOc80/J そもそもUTF-8保存バッチなんてまともに動くの見た事無い。
バッチはUS-AsciiかシフトJIS保存が安全。いくらchcpでコードページが動かせようとも
バッチはUS-AsciiかシフトJIS保存が安全。いくらchcpでコードページが動かせようとも
270デフォルトの名無しさん
2019/06/25(火) 20:51:13.72ID:yTOc80/J "シフトJIS(932) だけ? いいえ、そんなことはありません。例えば、EUC-JP(20932) も可能です。しかし、Unicode(1200)、UTF-7(65000)、UTF-8(65001)、JIS(50220) はダメです。
なので、実際上?は、シフトJIS(932) だけのようなものです。"
http://scripting.cocolog-nifty.com/blog/2008/12/post-38f8.html
なので、実際上?は、シフトJIS(932) だけのようなものです。"
http://scripting.cocolog-nifty.com/blog/2008/12/post-38f8.html
271デフォルトの名無しさん
2019/06/25(火) 21:18:10.64ID:O4gheXA8 ユニコードでしか表示できない文字を表示したいならともかく
"あああ" とか "いいい" じゃ全く意味が無いな
"あああ" とか "いいい" じゃ全く意味が無いな
272デフォルトの名無しさん
2019/06/26(水) 07:19:54.19ID:/FHvjGPn やはりbatをUTF-8で動かすと色々不安定みたいですね
素直にShift_JISで書くことにします
素直にShift_JISで書くことにします
273デフォルトの名無しさん
2019/06/26(水) 08:01:27.89ID:5bijRuYR ASCIIで書いてもええんやで?
274デフォルトの名無しさん
2019/06/26(水) 08:13:25.58ID:QearoGxm Asciiで"あああ"や"いいい"が表せるかバカ
275デフォルトの名無しさん
2019/06/26(水) 14:39:32.78ID:wh3oZ78w シフトJISで表せない文字の例
@echo off
chcp 65000 > nul
set a=+nddRZwDA-
chcp 932 > nul
set a1=%a:~0,1%
set a2=%a:~1,1%
set a3=%a:~2,1%
echo 森%a1%外の「%a1%」
echo %a2%田百閧フ「%a2%」
echo アクセント符号付きのアルファベット「%a3%」
pause > nul
@echo off
chcp 65000 > nul
set a=+nddRZwDA-
chcp 932 > nul
set a1=%a:~0,1%
set a2=%a:~1,1%
set a3=%a:~2,1%
echo 森%a1%外の「%a1%」
echo %a2%田百閧フ「%a2%」
echo アクセント符号付きのアルファベット「%a3%」
pause > nul
276デフォルトの名無しさん
2019/06/26(水) 19:26:37.84ID:jdth62TN ハードコーディングする必要ないだろ…
277デフォルトの名無しさん
2019/06/26(水) 20:16:33.91ID:wh3oZ78w ユニコードのバッチでいいなら必要ないな
echoは行末に半角スペース付けると多分ok
setは二重引用符で囲めばいい
echoは行末に半角スペース付けると多分ok
setは二重引用符で囲めばいい
278デフォルトの名無しさん
2019/06/27(木) 00:26:23.36ID:65pELY4n 会得したところで今後の人生に役に立たない、もしくは自分の仕事を受け継いだ「標準的な知識の」人間に理解できないことはしない方がいい。
一子相伝の拳法とかじゃねーんだから。
バッチスクリプトに限らず、仕事でそういうことを意識できない奴は、大抵、後から見て自分自身でも読めないコードを書くものだ。
一子相伝の拳法とかじゃねーんだから。
バッチスクリプトに限らず、仕事でそういうことを意識できない奴は、大抵、後から見て自分自身でも読めないコードを書くものだ。
279デフォルトの名無しさん
2019/06/27(木) 00:27:58.62ID:65pELY4n このスクリプトは自分で終わり…
とかいう書き捨てスクリプトなら大いにやって良いと思う。
使い終わったらちゃんと捨てとけよ。
とかいう書き捨てスクリプトなら大いにやって良いと思う。
使い終わったらちゃんと捨てとけよ。
280デフォルトの名無しさん
2019/06/27(木) 04:32:59.89ID:41DSIiqO この 低レベルに合わせる事こそ唯一の原則 みたいな風潮すごいイヤ
こんなとこまで啓蒙しなくていいよ気持ち悪い
こんなとこまで啓蒙しなくていいよ気持ち悪い
281デフォルトの名無しさん
2019/06/27(木) 04:53:05.65ID:6UZ42pkx282279
2019/06/28(金) 00:34:45.44ID:khpSyJhs >>280
低レベルに合わせるわけじゃねーよ。
現代的なスクリプト言語を学んできたような人間に対して
「バッチスクリプトだけで通じる特殊で小賢しいハック」
を読ませたり書かせたりするべきじゃない、自分だけに留めとけ、結局誰得になる、って話が何故分からないかな?
今日も
「文字列にASCIIの制御コードを挟めばテスト環境でこの処理通ったんでいいでしょ」
なんつったアホンダラを叱りつけたところだ。
「そのコードが何を意味してるか分かる?」と聞いたら「空白です」だとよ。そりゃ、制御コードは「お前のエディタでは」見えないよ。アホか。
制御コードがテスト環境と違う実環境でどう解釈されるか分かったもんじゃないから却下した。
実際、実環境でこっそりテストしてみたらやっぱり処理はコケた。
低レベルに合わせるわけじゃねーよ。
現代的なスクリプト言語を学んできたような人間に対して
「バッチスクリプトだけで通じる特殊で小賢しいハック」
を読ませたり書かせたりするべきじゃない、自分だけに留めとけ、結局誰得になる、って話が何故分からないかな?
今日も
「文字列にASCIIの制御コードを挟めばテスト環境でこの処理通ったんでいいでしょ」
なんつったアホンダラを叱りつけたところだ。
「そのコードが何を意味してるか分かる?」と聞いたら「空白です」だとよ。そりゃ、制御コードは「お前のエディタでは」見えないよ。アホか。
制御コードがテスト環境と違う実環境でどう解釈されるか分かったもんじゃないから却下した。
実際、実環境でこっそりテストしてみたらやっぱり処理はコケた。
283279
2019/06/28(金) 00:39:45.58ID:khpSyJhs で、バッチにもイディオムがある。
「AをしたいときはBと書け」ってやつ。
そういうものは、たとえ現代的なスクリプト言語とは感覚がかけ離れていてもバッチを書くなら「嫌でも」学習せねばならない。
つまり、
・言語や環境が想定している範囲内ならやってよし。むしろやれ。
・範囲外ならやるな。やるなら自己責任で他人に迷惑を掛けない程度に。
ということ。
これはどんな言語やシステムにも言えること。
「AをしたいときはBと書け」ってやつ。
そういうものは、たとえ現代的なスクリプト言語とは感覚がかけ離れていてもバッチを書くなら「嫌でも」学習せねばならない。
つまり、
・言語や環境が想定している範囲内ならやってよし。むしろやれ。
・範囲外ならやるな。やるなら自己責任で他人に迷惑を掛けない程度に。
ということ。
これはどんな言語やシステムにも言えること。
284279
2019/06/28(金) 00:51:59.74ID:khpSyJhs もっと言うと、何かを開発するときにまず最初にやることってのが
「この言語や環境はどこまで想定しているのかを調べる」
だったりする。
自分のやりたいことに沿ってくれるかくれないのか。
くれないなら処理の一部だけやらせるに留めるなり、最初から使わないなり、そういう選択をする。
言語や環境に縛りがある場合なら、責任者の言質を取るなり、書面で誓約を取ってから作る。
見ず知らずの他人が意味も訳も分からないトリッキーなコードをメンテさせられて苦しむのを想像できないならいくらでもトリッキーにやればいい。
「このコード書いた奴、死ねばいいのに」って言われても俺には関係ない、くらいの根性腐った奴ならそうすればいい。
「この言語や環境はどこまで想定しているのかを調べる」
だったりする。
自分のやりたいことに沿ってくれるかくれないのか。
くれないなら処理の一部だけやらせるに留めるなり、最初から使わないなり、そういう選択をする。
言語や環境に縛りがある場合なら、責任者の言質を取るなり、書面で誓約を取ってから作る。
見ず知らずの他人が意味も訳も分からないトリッキーなコードをメンテさせられて苦しむのを想像できないならいくらでもトリッキーにやればいい。
「このコード書いた奴、死ねばいいのに」って言われても俺には関係ない、くらいの根性腐った奴ならそうすればいい。
285デフォルトの名無しさん
2019/06/28(金) 04:47:52.79ID:+wrrcV+u だからキモイって
創価学会員並みにキモイ
狂信者の啓蒙活動と同じ
こんなところではなくおまえの会社でやってろ
創価学会員並みにキモイ
狂信者の啓蒙活動と同じ
こんなところではなくおまえの会社でやってろ
286デフォルトの名無しさん
2019/06/28(金) 07:00:46.98ID:n6DQpX/4 しかしWin環境はテキストのBOMマーク推奨なのに、for /fで読み出しするとBOMをわざわざ表示するのバカだよな。
過去の検討不足がまんま固定してる
過去の検討不足がまんま固定してる
287デフォルトの名無しさん
2019/06/28(金) 07:22:18.87ID:utv5/5Cv 面倒くさい奴が一人いるな
何を書こうが勝手だが、ここはお前の職場じゃないぞ
何を書こうが勝手だが、ここはお前の職場じゃないぞ
288デフォルトの名無しさん
2019/06/28(金) 07:41:24.76ID:utv5/5Cv289デフォルトの名無しさん
2019/06/28(金) 23:56:34.27ID:b/1HFBuK290デフォルトの名無しさん
2019/06/29(土) 01:27:00.86ID:LLveF6E3 だから何?
291デフォルトの名無しさん
2019/07/04(木) 08:37:48.34ID:yoyjVAJo Win10 v1903
メモ帳で新規作成したテキストがtypeで化ける
もはやSJISは既定値ではない
cmdは旧態依然
メモ帳で新規作成したテキストがtypeで化ける
もはやSJISは既定値ではない
cmdは旧態依然
292デフォルトの名無しさん
2019/07/04(木) 17:34:32.60ID:9mSpzETW まあ chcpすりゃいいだけだし
293デフォルトの名無しさん
2019/07/04(木) 18:30:22.69ID:wRHHZz1p 日本語レイアウトが崩れるからだめ
294デフォルトの名無しさん
2019/07/04(木) 21:43:07.98ID:y34WtIiv 以前は実行中のバッチファイルを編集保存、行を追加したり減らしたり、すると
エラーになってたと思うんだけど、何かエラーにならなくなった?
Windows10 1903 からの変更?
たまたまなのかな?
エラーになってたと思うんだけど、何かエラーにならなくなった?
Windows10 1903 からの変更?
たまたまなのかな?
295デフォルトの名無しさん
2019/07/04(木) 21:57:41.98ID:y34WtIiv296デフォルトの名無しさん
2019/07/05(金) 00:07:51.66ID:BL7Y7b8G 実行中の行やその直後の行を追加したり削ったりすれば、
同じ処理が繰り返しになったり、必要な処理がスキップされる形になって
挙動がおかしくなるな
同じ処理が繰り返しになったり、必要な処理がスキップされる形になって
挙動がおかしくなるな
297デフォルトの名無しさん
2019/07/05(金) 20:30:36.68ID:Osj0+Img バッチファイルスクリプトって働き方改革になるの?
298デフォルトの名無しさん
2019/07/05(金) 21:19:11.24ID:zBRgAgd8 Powershellが10年経って育った今からバッチを学ぶ意義は薄い
299デフォルトの名無しさん
2019/07/06(土) 08:00:17.95ID:NPkITZNc >>296
全部メモリーに読み込んでしまうとかファイルロック掛けるとかすれば良いのにね
全部メモリーに読み込んでしまうとかファイルロック掛けるとかすれば良いのにね
300デフォルトの名無しさん
2019/07/06(土) 08:01:28.83ID:NPkITZNc301デフォルトの名無しさん
2019/07/06(土) 10:23:31.70ID:OJAqpfME >>299
インタープリターではなくなる
インタープリターではなくなる
302デフォルトの名無しさん
2019/07/06(土) 10:31:09.33ID:SnF6bIfm 働き方改革?
303デフォルトの名無しさん
2019/07/06(土) 10:53:24.31ID:NPkITZNc >>301
意味わからん…
意味わからん…
304デフォルトの名無しさん
2019/07/06(土) 10:59:51.87ID:OJAqpfME305デフォルトの名無しさん
2019/07/06(土) 11:04:50.99ID:NPkITZNc >>304
> そもインタープリターは行単位でのみ読み込み解釈実行する仕様。
逐次解釈は別にメモリーからでもいいだろ
> 行内容を変えても反映されないんじゃインタープリターにならない
そもそも行内容変えたらおかしくなるって話なんだがw
> そもインタープリターは行単位でのみ読み込み解釈実行する仕様。
逐次解釈は別にメモリーからでもいいだろ
> 行内容を変えても反映されないんじゃインタープリターにならない
そもそも行内容変えたらおかしくなるって話なんだがw
306デフォルトの名無しさん
2019/07/06(土) 11:12:26.69ID:OJAqpfME307デフォルトの名無しさん
2019/07/06(土) 11:45:00.41ID:ddaI9LPq ディスクキャッシュなしだとクッソ遅いんだよな
308デフォルトの名無しさん
2019/07/06(土) 11:54:17.26ID:NPkITZNc309デフォルトの名無しさん
2019/07/06(土) 12:11:18.65ID:OJAqpfME310デフォルトの名無しさん
2019/07/06(土) 12:13:38.81ID:NPkITZNc > メモリに全部読み込んでファイルロックかけちゃえばとか
日本語の理解力もないのかよ…
日本語の理解力もないのかよ…
311デフォルトの名無しさん
2019/07/06(土) 12:20:37.36ID:OJAqpfME 仕様通りの動作に「仕様を変えるべきだ」というなら「どうぞ、自分で制作しておやりなさい」としか
ディスク上のプロフラムファイルを処理しろと指示しておいて、実行中にプログラムファイル弄る方がバカでしょ?
ディスク上のプロフラムファイルを処理しろと指示しておいて、実行中にプログラムファイル弄る方がバカでしょ?
312デフォルトの名無しさん
2019/07/06(土) 12:45:33.27ID:SnF6bIfm 横から失礼します。
例えば、バッチじゃないけど、
中間コード生成するのは、
インタプリタじゃないの?
例えば、バッチじゃないけど、
中間コード生成するのは、
インタプリタじゃないの?
313デフォルトの名無しさん
2019/07/06(土) 12:53:22.08ID:NPkITZNc > ディスク上のプロフラムファイルを処理しろと指示しておいて、実行中にプログラムファイル弄る方がバカでしょ?
うんうん、
> 行内容を変えても反映されないんじゃインタープリターにならない
とか言ってたバカに言ってやれよww
うんうん、
> 行内容を変えても反映されないんじゃインタープリターにならない
とか言ってたバカに言ってやれよww
314デフォルトの名無しさん
2019/07/06(土) 13:25:39.62ID:OJAqpfME315デフォルトの名無しさん
2019/07/06(土) 13:31:06.82ID:NPkITZNc > 実行中にプログラムファイル弄る方がバカでしょ?
なのに内容変えたら反映しろとか頭おかしいw
もう自分が何を指摘されてるかもわかってないんだろうな
なのに内容変えたら反映しろとか頭おかしいw
もう自分が何を指摘されてるかもわかってないんだろうな
316デフォルトの名無しさん
2019/07/06(土) 14:13:50.98ID:OJAqpfME 動作がバグらないように行内容をいじる方法もあるからなー
バカには気づけないのかもな
バカには気づけないのかもな
317デフォルトの名無しさん
2019/07/06(土) 14:26:59.31ID:NPkITZNc しれっと話し変えててウケる~w
318デフォルトの名無しさん
2019/07/06(土) 14:27:43.94ID:ZOT0kh7c title Win8.1のcmdはPowershellを呼び出すとタイトルが変わってしまう
timeout 5
powershell sleep 5
Powershellを呼び出してもタイトルが変化しない方法ありませんか?
timeout 5
powershell sleep 5
Powershellを呼び出してもタイトルが変化しない方法ありませんか?
319デフォルトの名無しさん
2019/07/06(土) 15:18:42.27ID:Mj6xLmMK なんか色々とっちらかってるけど
入力に対して逐次実行を行い内容を出力するための実行エンジンがインタプリタ
まとめて実行する方法がバッチ
バッチを書くための言語の種類がスクリプト
なのでインタプリタ上で動くスクリプトで記述されたバッチが多いのは事実だけど
バッチスクリプトだからって必ずしもインタプリタ上で動作するわけではない
あまり言われることはないけどC言語なんかも手順をまとめて記述するという
意味ではバッチ
そのバッチを効率よく動かすためにハードウェアにネイティブなコードなどに
変換するのがコンパイラ
なので>>312が言うような中間コードを生成するのは処理的にはバッチのコンパイル
C#がやJAVAが典型的だけどバッチとして書かれたスクリプトをコンパイラで
中間コードに変換して.netエンジンとかJAVAエンジンで動かすけど、これらの
エンジンはインタプリタとして作成されているので直接コマンドを逐次実行する
ことも出来るようになっている
インタプリタが何を持って逐次実行の基準にしている(一般的にテキスト入力な
インタプリタはキャリッジリターンだけど)かはインタプリタの実装しだいなので、
バッチの内容がバッチ実行中に書き換わった際に動作が変わる/変わらないって
いうのは実行エンジンがインタプリタであるとかないとか言うのと関係ない
Linuxのシェルスクリプトはshっていうインタプリタで動いてるけど、バッチ
スクリプトは「'(バッククォート)」で囲まれた文字列はコマンドとして実行でき、
文字列は動的に書き換えできるのでバッチファイルを書き換えながらインタプリタで
実行できるバッチスクリプトって言うものも存在する
逆にC#みたいな中間コードを実行するインタプリタシステムは一般的にまとめて
コードを読み込んで実行するので、実行中にファイルを書き換えても読み込まれた
コードが変わるわけではないのでそのまま実行できる
入力に対して逐次実行を行い内容を出力するための実行エンジンがインタプリタ
まとめて実行する方法がバッチ
バッチを書くための言語の種類がスクリプト
なのでインタプリタ上で動くスクリプトで記述されたバッチが多いのは事実だけど
バッチスクリプトだからって必ずしもインタプリタ上で動作するわけではない
あまり言われることはないけどC言語なんかも手順をまとめて記述するという
意味ではバッチ
そのバッチを効率よく動かすためにハードウェアにネイティブなコードなどに
変換するのがコンパイラ
なので>>312が言うような中間コードを生成するのは処理的にはバッチのコンパイル
C#がやJAVAが典型的だけどバッチとして書かれたスクリプトをコンパイラで
中間コードに変換して.netエンジンとかJAVAエンジンで動かすけど、これらの
エンジンはインタプリタとして作成されているので直接コマンドを逐次実行する
ことも出来るようになっている
インタプリタが何を持って逐次実行の基準にしている(一般的にテキスト入力な
インタプリタはキャリッジリターンだけど)かはインタプリタの実装しだいなので、
バッチの内容がバッチ実行中に書き換わった際に動作が変わる/変わらないって
いうのは実行エンジンがインタプリタであるとかないとか言うのと関係ない
Linuxのシェルスクリプトはshっていうインタプリタで動いてるけど、バッチ
スクリプトは「'(バッククォート)」で囲まれた文字列はコマンドとして実行でき、
文字列は動的に書き換えできるのでバッチファイルを書き換えながらインタプリタで
実行できるバッチスクリプトって言うものも存在する
逆にC#みたいな中間コードを実行するインタプリタシステムは一般的にまとめて
コードを読み込んで実行するので、実行中にファイルを書き換えても読み込まれた
コードが変わるわけではないのでそのまま実行できる
320デフォルトの名無しさん
2019/07/06(土) 15:32:56.64ID:Es9FYwgG バカの長文ウザい
321デフォルトの名無しさん
2019/07/06(土) 16:47:17.04ID:edODQM35 理解できないときの一行レス乙
322デフォルトの名無しさん
2019/07/06(土) 17:04:06.81ID:l+THgL+v324デフォルトの名無しさん
2019/07/06(土) 18:13:58.11ID:yCp3HJnn325デフォルトの名無しさん
2019/07/06(土) 18:30:06.42ID:edODQM35 アホとバカは意味がちゃうで
326デフォルトの名無しさん
2019/07/07(日) 00:42:47.20ID:YVv/+K6C 貴重なメモリをバッチなんかに使われたくない
ましてやファイルハンドル or FCBを消費するなんて考えたくもない
ましてやファイルハンドル or FCBを消費するなんて考えたくもない
327デフォルトの名無しさん
2019/07/07(日) 17:57:51.72ID:sK6+FwWI 書いたスクリプトをそのままCMD画面に貼り付けて実行できるのが素晴らしすぎる
これもインタープリタゆえのメリット
これもインタープリタゆえのメリット
328デフォルトの名無しさん
2019/07/17(水) 22:50:53.76ID:2IS3Ei7C 指定したURLをIEで開くバッチファイルを作りたいのですが、以下のいずれの書き方でもうまく起動しませんでした。
どのように記述すれば良いのでしょうか?
start "" """C:\Program Files\internet explorer\iexplore.exe"" https://www.yahoo.co.jp/"
start "" "'C:\Program Files\internet explorer\iexplore.exe' https://www.yahoo.co.jp/"
start 'C:\Program Files\internet explorer\iexplore.exe' https://www.yahoo.co.jp/
cmd /c start "" """C:\Program Files\internet explorer\iexplore.exe"" https://www.yahoo.co.jp/"
cmd /c start "" "'C:\Program Files\internet explorer\iexplore.exe' https://www.yahoo.co.jp/"
cmd /c start 'C:\Program Files\internet explorer\iexplore.exe' https://www.yahoo.co.jp/
どのように記述すれば良いのでしょうか?
start "" """C:\Program Files\internet explorer\iexplore.exe"" https://www.yahoo.co.jp/"
start "" "'C:\Program Files\internet explorer\iexplore.exe' https://www.yahoo.co.jp/"
start 'C:\Program Files\internet explorer\iexplore.exe' https://www.yahoo.co.jp/
cmd /c start "" """C:\Program Files\internet explorer\iexplore.exe"" https://www.yahoo.co.jp/"
cmd /c start "" "'C:\Program Files\internet explorer\iexplore.exe' https://www.yahoo.co.jp/"
cmd /c start 'C:\Program Files\internet explorer\iexplore.exe' https://www.yahoo.co.jp/
329デフォルトの名無しさん
2019/07/17(水) 22:52:08.85ID:2IS3Ei7C ↑書き忘れましたが、IEを起動したらバッチファイル自体はすぐに終了して欲しいです。
330デフォルトの名無しさん
2019/07/17(水) 22:58:10.74ID:t7LU6uHU これで普通に開けたけど
start "" "C:\Program Files\internet explorer\iexplore.exe" "https://www.yahoo.co.jp/"
exit
start "" "C:\Program Files\internet explorer\iexplore.exe" "https://www.yahoo.co.jp/"
exit
331デフォルトの名無しさん
2019/07/17(水) 23:41:41.05ID:2IS3Ei7C >>330
助かりました。ありがとうございます><
助かりました。ありがとうございます><
332デフォルトの名無しさん
2019/07/22(月) 20:50:29.11ID:64jFVFKi 質問です
chcp を設定後に日本語テキストファイルを type しても
なぜか数行ごとに部分的に文字化けします
正しく表示させる方法はありますか
ファイルをコード変換するしかないでしょうか
20932 (EUC-JP)
50220 (JIS)
65000 (UTF-7)
65001 (UTF-8)
chcp を設定後に日本語テキストファイルを type しても
なぜか数行ごとに部分的に文字化けします
正しく表示させる方法はありますか
ファイルをコード変換するしかないでしょうか
20932 (EUC-JP)
50220 (JIS)
65000 (UTF-7)
65001 (UTF-8)
333デフォルトの名無しさん
2019/07/23(火) 00:29:27.63ID:NmYCCAI2 正常に表示できる部分もあるのか?
コマンドプロンプトのフォント設定はレジストリをいじればできるようだが
chcp したとしても
各コードに合わせた日本語フォントがないと思う
ファイルをコード変換には nkf などを利用すればよい
もちろんcp932に変換できない文字がありえる点には注意
コマンドプロンプトのフォント設定はレジストリをいじればできるようだが
chcp したとしても
各コードに合わせた日本語フォントがないと思う
ファイルをコード変換には nkf などを利用すればよい
もちろんcp932に変換できない文字がありえる点には注意
334デフォルトの名無しさん
2019/07/23(火) 01:19:58.32ID:dqAnc0cb 横から失礼。多分フォントの問題じゃないなあ。再現してみる。
@echo off
del a.txt
set "a=ああああああああああああああああああああああああああああああああああ"
chcp 65001
for /l %%i in (1,1,10) do echo %a% >> a.txt
start notepad a.txt
type a.txt
pause
goto :eof
@echo off
del a.txt
set "a=ああああああああああああああああああああああああああああああああああ"
chcp 65001
for /l %%i in (1,1,10) do echo %a% >> a.txt
start notepad a.txt
type a.txt
pause
goto :eof
335デフォルトの名無しさん
2019/07/23(火) 13:00:19.24ID:dqAnc0cb >>332 typeの代替えバッチ
@echo off & set /a b=1
for /f "delims=:" %%i in ('type "%~1" ^| findstr /n /r /c:"^$"') do call :x %%i
set /a a%b%=0,b=1,c=1
for /f delims^=^ eol^= %%i in ('type "%~1"') do call :y & echo.%%i
goto :eof
:x
set /a a%b%=%1,b-=-1 & exit /b
:y
set /a d=a%b%
set /a c-=-1 & if %c%==%d% echo.& set /a b-=-1 & goto y
動作文字コードは>>332の4種類とcp932とBOM付UTF-16LE
内部コマンドのtypeの文字化けの原因は不明
得体の知れないバッチが嫌ならnkfでどうぞ
@echo off & set /a b=1
for /f "delims=:" %%i in ('type "%~1" ^| findstr /n /r /c:"^$"') do call :x %%i
set /a a%b%=0,b=1,c=1
for /f delims^=^ eol^= %%i in ('type "%~1"') do call :y & echo.%%i
goto :eof
:x
set /a a%b%=%1,b-=-1 & exit /b
:y
set /a d=a%b%
set /a c-=-1 & if %c%==%d% echo.& set /a b-=-1 & goto y
動作文字コードは>>332の4種類とcp932とBOM付UTF-16LE
内部コマンドのtypeの文字化けの原因は不明
得体の知れないバッチが嫌ならnkfでどうぞ
336332
2019/07/23(火) 19:39:52.27ID:3qcsVE62337デフォルトの名無しさん
2019/08/05(月) 14:25:26.72ID:KhkfuoHG @ECHO OFF
FOR /L %%I IN (1,1,3) DO (
:ラベルの次に空行だと死ぬようだ
ECHO %%I
)
PAUSE
FOR /L %%I IN (1,1,3) DO (
:ラベルの次に空行だと死ぬようだ
ECHO %%I
)
PAUSE
338デフォルトの名無しさん
2019/08/05(月) 23:40:50.69ID:uv4O1i4q339デフォルトの名無しさん
2019/08/09(金) 07:12:05.83ID:e+IGCa9q MSはpowershell作っといてcmdも生殺しのまま
340デフォルトの名無しさん
2019/08/09(金) 07:24:42.21ID:i8+nUA9v 後方互換レガシー用だから
■ このスレッドは過去ログ倉庫に格納されています
