拡張子が .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
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 後方互換レガシー用だから
341デフォルトの名無しさん
2019/08/10(土) 16:26:14.51ID:O+qo9jJ2 ・ループはなるべくラベルgotoで作る
・処理はまとめてCALLで呼び出す
と変な仕様に悩まされなくて済む
・処理はまとめてCALLで呼び出す
と変な仕様に悩まされなくて済む
342デフォルトの名無しさん
2019/08/12(月) 01:15:40.10ID:qDWW1IB8343デフォルトの名無しさん
2019/08/12(月) 01:43:33.99ID:asx4qCxc344デフォルトの名無しさん
2019/08/14(水) 08:17:57.87ID:2+7gdzMY なぜエラー?
@echo off
for /l %%i in (1,1,3) do (^
echo %%i
)
pause
@echo off
for /l %%i in (1,1,3) do (^
echo %%i
)
pause
345デフォルトの名無しさん
2019/08/14(水) 12:07:08.56ID:tEu06J9P 空白行があるのがまずいのです。
346デフォルトの名無しさん
2019/08/15(木) 07:26:44.38ID:mKbuBo/x echo onで見るとechoが消えてる
for /L %i in (1 1 3) do (%i)
for /L %i in (1 1 3) do (%i)
347デフォルトの名無しさん
2019/08/15(木) 07:36:02.85ID:mKbuBo/x 今、気付いたけど
for/Lのカウントの区切り文字は半角スペースでもいいんだな
for/Lのカウントの区切り文字は半角スペースでもいいんだな
348デフォルトの名無しさん
2019/08/15(木) 12:44:36.23ID:ALsBqyPd なんで"("のあとでエスケープしてるんだ?
349デフォルトの名無しさん
2019/08/15(木) 18:55:50.85ID:8DKeAJZl350デフォルトの名無しさん
2019/08/15(木) 18:58:32.85ID:8DKeAJZl こうかも。
違いはechoの前の半角スペースの有無
@echo off
for /l %%i in (1,1,3) do (^
^
echo %%i
)
pause
違いはechoの前の半角スペースの有無
@echo off
for /l %%i in (1,1,3) do (^
^
echo %%i
)
pause
351デフォルトの名無しさん
2019/08/15(木) 20:14:09.75ID:bAdklReO352デフォルトの名無しさん
2019/08/15(木) 20:20:13.66ID:hL4sD0l+ >>349
そういうことじゃなく、
そんなところにエスケープさえしなければ動く、ということ
空改行があっても同じ
@echo off
for /l %%i in (1,1,3) do (
echo %%i
)
pause
そもそも、エスケープが必要なのは以下のような書き方の場合
@echo off
for /l %%i in (1,1,3) ^
do (
echo %%i
)
pause
そういうことじゃなく、
そんなところにエスケープさえしなければ動く、ということ
空改行があっても同じ
@echo off
for /l %%i in (1,1,3) do (
echo %%i
)
pause
そもそも、エスケープが必要なのは以下のような書き方の場合
@echo off
for /l %%i in (1,1,3) ^
do (
echo %%i
)
pause
353デフォルトの名無しさん
2019/08/16(金) 13:12:21.88ID:nbkgz595 元々^が要らんのは分かるが
何で2行下のechoが消えるんだ?
何で2行下のechoが消えるんだ?
354デフォルトの名無しさん
2019/08/16(金) 19:53:07.91ID:tgbth6lv 何が正解か良く分からないけど「echo」が消えているのではなく
「echo %%i」が実行された結果「%i」って文字列が出力されて
いるんじゃないかな
「echo %%i」が実行された結果「%i」って文字列が出力されて
いるんじゃないかな
355デフォルトの名無しさん
2019/08/17(土) 03:04:11.02ID:loMKkBUO うん、メッセージを出したかったら、
echo [メッセ−ジ文]
だよね。
echo [メッセ−ジ文]
だよね。
356デフォルトの名無しさん
2019/08/17(土) 07:25:02.72ID:u1p0gnkJ >>346を見ろ
357332
2019/08/17(土) 18:15:26.70ID:etNorZr1 はろー♪
@echo off
(^
rem echo Hello, World!)
pause
@echo off
(^
rem echo Hello, World!)
pause
358デフォルトの名無しさん
2019/08/17(土) 21:41:43.17ID:nWccZbx0359デフォルトの名無しさん
2019/08/17(土) 23:29:25.24ID:u1p0gnkJ >>357
そういうのはもういいから
そういうのはもういいから
360デフォルトの名無しさん
2019/08/20(火) 20:01:18.85ID:S2+8M2EA C:\Users\hogehoge\AppData\Local\Microsoft\Windows\InetCache
にIEのキャッシュファイルがあって、コマンドで削除したいのですが
del /f /q C:\Users\hogehoge\AppData\Local\Microsoft\Windows\InetCache\*
を管理者権限のコマンドプロンプトで実行しても消えてくれません。
どうすれば消せるのでしょうか?
環境はWin10です。
ちなみに上記の「del /f /q」を「dir」に変えて実行すると、何もファイルが表示されませんでした。
エクスプローラでは表示されるのに…
にIEのキャッシュファイルがあって、コマンドで削除したいのですが
del /f /q C:\Users\hogehoge\AppData\Local\Microsoft\Windows\InetCache\*
を管理者権限のコマンドプロンプトで実行しても消えてくれません。
どうすれば消せるのでしょうか?
環境はWin10です。
ちなみに上記の「del /f /q」を「dir」に変えて実行すると、何もファイルが表示されませんでした。
エクスプローラでは表示されるのに…
361デフォルトの名無しさん
2019/08/20(火) 20:06:19.31ID:WpfDQiIq まずは対象ファイルの属性を確認かな
362デフォルトの名無しさん
2019/08/20(火) 20:39:45.13ID:WpfDQiIq363デフォルトの名無しさん
2019/08/30(金) 17:07:15.01ID:C82bQLaF 任意のテキストファイルの各行(1〜N)を、
変数のARRAY[1〜N]にそのまま代入できますか?
テキストは空行あり、文字化けは無しで。
変数のARRAY[1〜N]にそのまま代入できますか?
テキストは空行あり、文字化けは無しで。
364デフォルトの名無しさん
2019/08/30(金) 18:13:13.64ID:C82bQLaF すみません
N行は指定じゃなくて全行です
N行は指定じゃなくて全行です
365デフォルトの名無しさん
2019/08/30(金) 19:43:28.54ID:hATE1ff9 >>363 確認の表示が不要なら消してくれ
@echo off & set /A N=0 & if "%~1"==":GETS" goto GETS
for /F "delims=" %%I in ('call "%~0" ":GETS" "%~1"') do (
set /A N+=1 & set %%I)
setlocal enabledelayedexpansion
for /L %%I in (1,1,%N%) do echo ARRAY[%%I]=!ARRAY[%%I]!
goto :eof
:GETS
set o="tokens=* delims=0123456789"
for /F %o% %%I in ('findstr /N "^" "%~2"') do (
set /A N+=1 & set s=%%I
setlocal enabledelayedexpansion
echo ARRAY[!N!]=!s:~1!
endlocal)
@echo off & set /A N=0 & if "%~1"==":GETS" goto GETS
for /F "delims=" %%I in ('call "%~0" ":GETS" "%~1"') do (
set /A N+=1 & set %%I)
setlocal enabledelayedexpansion
for /L %%I in (1,1,%N%) do echo ARRAY[%%I]=!ARRAY[%%I]!
goto :eof
:GETS
set o="tokens=* delims=0123456789"
for /F %o% %%I in ('findstr /N "^" "%~2"') do (
set /A N+=1 & set s=%%I
setlocal enabledelayedexpansion
echo ARRAY[!N!]=!s:~1!
endlocal)
366デフォルトの名無しさん
2019/08/30(金) 20:46:06.08ID:C82bQLaF367デフォルトの名無しさん
2019/08/31(土) 00:24:30.62ID:dLbvCDhA 発見
call は遅い
自バッチ内であっても繰り返しの中では使わないほうがよい
call は遅い
自バッチ内であっても繰り返しの中では使わないほうがよい
368デフォルトの名無しさん
2019/08/31(土) 02:06:06.88ID:KhyCGx+x それは分かる
何かいい方法が有ったら書いてくれ
何かいい方法が有ったら書いてくれ
369デフォルトの名無しさん
2019/08/31(土) 07:34:22.10ID:KhyCGx+x ループの中では、call setも遅いな
call先はバッチが基本なので
%path%のフォルダ内にset.batが存在しないか
ループの中で毎回、無駄に検索して時間のロスに
call先はバッチが基本なので
%path%のフォルダ内にset.batが存在しないか
ループの中で毎回、無駄に検索して時間のロスに
370デフォルトの名無しさん
2019/08/31(土) 13:05:56.96ID:4qIvp+ND フルパスか相対パスで書けばいいのに
371デフォルトの名無しさん
2019/08/31(土) 15:06:36.69ID:ny+pXiR9 クリーンに再実装しようとしてもうまく行かないし、Windows Terminalのオプソ化に期待
372デフォルトの名無しさん
2019/08/31(土) 21:47:05.78ID:KhyCGx+x 内部コマンドsetにフルパス?
373デフォルトの名無しさん
2019/09/17(火) 21:00:42.57ID:Syn6UaDZ ポータブルデバイスにフォルダ移動したいのですがどのコマンドを使えばよろしいのでしょうか?
宜しくお願いします。
宜しくお願いします。
374デフォルトの名無しさん
2019/09/18(水) 07:27:23.31ID:zCU+H1xg robocopy
375デフォルトの名無しさん
2019/09/18(水) 22:10:15.94ID:zS9nLp3S376デフォルトの名無しさん
2019/09/19(木) 17:48:14.75ID:W0BHkkEI そのポータブルデバイスとやらのスレで聞け
377デフォルトの名無しさん
2019/09/19(木) 19:33:15.60ID:UaiZGsoz >>373
MTP接続しているデバイスにbatでフォルダ移動したいということ?
MTP接続しているデバイスにbatでフォルダ移動したいということ?
378デフォルトの名無しさん
2019/09/19(木) 21:49:07.77ID:oZTJ7ty8379デフォルトの名無しさん
2019/09/20(金) 18:54:32.90ID:YblgUZDU >>378
MTPにWindowsからアクセスする場合にはWDP (Windows Portable Device)という
仕組みを使ってアクセスする必要があるらしいのでPowerShellとかVBSみたいな
COMオブジェクトに対応しているスクリプト言語を使うかプログラミングしないと
無理みたいだけど
MTPにWindowsからアクセスする場合にはWDP (Windows Portable Device)という
仕組みを使ってアクセスする必要があるらしいのでPowerShellとかVBSみたいな
COMオブジェクトに対応しているスクリプト言語を使うかプログラミングしないと
無理みたいだけど
380デフォルトの名無しさん
2019/09/20(金) 20:53:45.43ID:C2+cwByF >>379
なるほどコマンドだけでは出来ないのですね。ありがとうございました。
なるほどコマンドだけでは出来ないのですね。ありがとうございました。
381デフォルトの名無しさん
2019/09/20(金) 21:22:16.17ID:CafmkPOq mtpじゃなくftp使えばいいんじゃない
382デフォルトの名無しさん
2019/09/20(金) 23:15:32.97ID:Va/jwPXC スレチだけど、横から失礼。
今USBで繋いだスマホのファイルをPCのexplorerで見てたら、
どうしても表示されないファイルが一部あるんだよ。
表示を更新してもダメだ。何なんだろ、これ。
スマホ側でzipに圧縮したら転送できたんだが。
今USBで繋いだスマホのファイルをPCのexplorerで見てたら、
どうしても表示されないファイルが一部あるんだよ。
表示を更新してもダメだ。何なんだろ、これ。
スマホ側でzipに圧縮したら転送できたんだが。
383デフォルトの名無しさん
2019/09/21(土) 09:52:34.32ID:obXFPJy6 >>382
MTPは本来画像とか音声とか映像ファイルを共有するための規格なんだけど
それでは不便なので実装者が拡張して他のファイルも見えるようにしているらしい
でWindowsのexplorerで削除できないファイルってのは何種類かあるけど表示
できないってのは覚えがないのでスマホ側の実装の問題じゃないかな
MTPは本来画像とか音声とか映像ファイルを共有するための規格なんだけど
それでは不便なので実装者が拡張して他のファイルも見えるようにしているらしい
でWindowsのexplorerで削除できないファイルってのは何種類かあるけど表示
できないってのは覚えがないのでスマホ側の実装の問題じゃないかな
384デフォルトの名無しさん
2019/09/21(土) 11:24:33.96ID:aqL81KxG385デフォルトの名無しさん
2019/09/21(土) 12:19:59.86ID:Zmbs8cMB >>382
メディアストレージのDBが壊れてるか更新されてないだけでは?
メディアストレージのDBが壊れてるか更新されてないだけでは?
386デフォルトの名無しさん
2019/09/21(土) 12:39:19.92ID:aqL81KxG387デフォルトの名無しさん
2019/09/21(土) 23:40:04.00ID:bVn3Z6J/ >>378
Android Debug Bridge(adb)を使用してはどうでしょうか?
https://developer.android.com/studio/command-line/adb.html?hl=ja#copyfiles
例)adb pull remote local
ただしワイルドカードが使用できないので工夫が必要かも
Android Debug Bridge(adb)を使用してはどうでしょうか?
https://developer.android.com/studio/command-line/adb.html?hl=ja#copyfiles
例)adb pull remote local
ただしワイルドカードが使用できないので工夫が必要かも
388デフォルトの名無しさん
2019/09/22(日) 06:16:16.89ID:9I7oEjtC そもそもAndroidなのか?
389デフォルトの名無しさん
2019/09/23(月) 04:39:39.37ID:LINEF6Ks390デフォルトの名無しさん
2019/10/01(火) 22:20:01.40ID:vtcCH4Ws vbsスクリプト使用者に対話型でURLを入力させようと思い
inputboxを使用していましたが254文字以降は切り捨てられるようで
切り捨てられた場合にcmdを呼んでコマンドプロンプトで
TYPE CONで入力させ標準出力からとろうと思いました。
コマンドプロンプトから
TYPE CON
で文字入力していくと510文字しか打てません
COPY CON
で文字入力していく場合も510文字しか打てません
ただこちらは改行して2回目以降の文字入力は254文字までしか打てません
コマンドプロンプトはwindowsの仕様だともっと入力できたはずだと思うんですけど
TYPE COPYコマンドが原因なのでしょうか?
上限が512-2 256-2なのが気になります
inputboxを使用していましたが254文字以降は切り捨てられるようで
切り捨てられた場合にcmdを呼んでコマンドプロンプトで
TYPE CONで入力させ標準出力からとろうと思いました。
コマンドプロンプトから
TYPE CON
で文字入力していくと510文字しか打てません
COPY CON
で文字入力していく場合も510文字しか打てません
ただこちらは改行して2回目以降の文字入力は254文字までしか打てません
コマンドプロンプトはwindowsの仕様だともっと入力できたはずだと思うんですけど
TYPE COPYコマンドが原因なのでしょうか?
上限が512-2 256-2なのが気になります
391デフォルトの名無しさん
2019/10/01(火) 22:57:55.77ID:co/wCjS7392デフォルトの名無しさん
2019/10/01(火) 23:08:42.31ID:vtcCH4Ws393デフォルトの名無しさん
2019/10/01(火) 23:19:31.66ID:co/wCjS7 標準出力がいいなら
echo %var%
を最後に付けとけばうまくいかないかな?
echo %var%
を最後に付けとけばうまくいかないかな?
394デフォルトの名無しさん
2019/10/01(火) 23:41:17.62ID:vtcCH4Ws いえVBSで環境変数からでも取れるんでどちらでもいいんですが
この方法は毎回ファイル書き込みはいるのなら避けたいですね
この方法は毎回ファイル書き込みはいるのなら避けたいですね
395デフォルトの名無しさん
2019/10/03(木) 06:03:26.81ID:qiM7wE73396デフォルトの名無しさん
2019/10/03(木) 19:45:19.23ID:+nOn2TPH >>395
ありがとうございます。たしかにfindstr ^^ 試すと長く入力できますね
ただスクリプトが動く動きません(type con copy con以外)
たぶんexecで標準入出力を横取りしてるからなのかなと思ったんですけどならtype conはなぜ動くのかという気もします
//Prompt.vbs
Function Prompt(Text,Default)
WScript.Echo(Text)
Set WshShell = CreateObject("WScript.Shell")
Set oExec = WshShell.exec("cmd /c title " & Replace(Replace(Text,vbCr,""),vbLf,"") & " && type con")
'Set oExec = WshShell.exec("cmd /c findstr ^^")
Prompt = oExec.stdout.ReadLine()
oExec.terminate
End Function
msgbox Prompt("test dayo","")
ありがとうございます。たしかにfindstr ^^ 試すと長く入力できますね
ただスクリプトが動く動きません(type con copy con以外)
たぶんexecで標準入出力を横取りしてるからなのかなと思ったんですけどならtype conはなぜ動くのかという気もします
//Prompt.vbs
Function Prompt(Text,Default)
WScript.Echo(Text)
Set WshShell = CreateObject("WScript.Shell")
Set oExec = WshShell.exec("cmd /c title " & Replace(Replace(Text,vbCr,""),vbLf,"") & " && type con")
'Set oExec = WshShell.exec("cmd /c findstr ^^")
Prompt = oExec.stdout.ReadLine()
oExec.terminate
End Function
msgbox Prompt("test dayo","")
397デフォルトの名無しさん
2019/10/03(木) 20:43:23.90ID:jymbX9V4 cmdじゃないけど
powershell -Command $a=read-host; write-host $a
とかどうよ
powershell -Command $a=read-host; write-host $a
とかどうよ
398デフォルトの名無しさん
2019/10/03(木) 21:20:07.70ID:+nOn2TPH powershellもちょっと試してたんですけどこっちもキーボード入力がはいってるように見えないです
powershellはcommand移行の注釈がいまいちわからなくてそれが原因なのかなとも思ったんですけど
(""の場合は前に&をつけるとかどうとか)
Function Prompt(Text,Default)
WScript.Echo(Text)
Set WshShell = CreateObject("WScript.Shell")
'Set oExec = WshShell.exec("cmd /c title " & Replace(Replace(Text,vbCr,""),vbLf,"") & " && type con")
'Set oExec = WshShell.exec("cmd /c findstr ^^")
Set oExec = WshShell.exec("powershell -NoExit -NoLogo -NoProfile -ExecutionPolicy RemoteSigned -Command $a=read-host; write-host $a")
Prompt = oExec.stdout.ReadLine()
oExec.terminate
End Function
msgbox Prompt("test dayo","")
powershellはcommand移行の注釈がいまいちわからなくてそれが原因なのかなとも思ったんですけど
(""の場合は前に&をつけるとかどうとか)
Function Prompt(Text,Default)
WScript.Echo(Text)
Set WshShell = CreateObject("WScript.Shell")
'Set oExec = WshShell.exec("cmd /c title " & Replace(Replace(Text,vbCr,""),vbLf,"") & " && type con")
'Set oExec = WshShell.exec("cmd /c findstr ^^")
Set oExec = WshShell.exec("powershell -NoExit -NoLogo -NoProfile -ExecutionPolicy RemoteSigned -Command $a=read-host; write-host $a")
Prompt = oExec.stdout.ReadLine()
oExec.terminate
End Function
msgbox Prompt("test dayo","")
399デフォルトの名無しさん
2019/10/04(金) 05:33:06.84ID:igWxDR2f >>398
いまいちVB.NETがどういう環境で使えるのか分からないし
PowerShellの実行を許可してない環境でも動くのかも分からないが
VB.NETのinputboxには256文字の入力制限が無い模様
Function Prompt(Text,Default)
WScript.Echo(Text)
Set WshShell = CreateObject("WScript.Shell")
Set oExec = WshShell.exec("powershell -NoProfile -ExecutionPolicy Unrestricted -C add-type -AssemblyName microsoft.VisualBasic; [Microsoft.VisualBasic.Interaction]::InputBox('URLを入力してください', 'URL入力');")
Prompt = oExec.stdout.ReadLine()
End Function
'msgbox Prompt("test dayo","")
WScript.Echo Prompt("test dayo","")
いまいちVB.NETがどういう環境で使えるのか分からないし
PowerShellの実行を許可してない環境でも動くのかも分からないが
VB.NETのinputboxには256文字の入力制限が無い模様
Function Prompt(Text,Default)
WScript.Echo(Text)
Set WshShell = CreateObject("WScript.Shell")
Set oExec = WshShell.exec("powershell -NoProfile -ExecutionPolicy Unrestricted -C add-type -AssemblyName microsoft.VisualBasic; [Microsoft.VisualBasic.Interaction]::InputBox('URLを入力してください', 'URL入力');")
Prompt = oExec.stdout.ReadLine()
End Function
'msgbox Prompt("test dayo","")
WScript.Echo Prompt("test dayo","")
400デフォルトの名無しさん
2019/10/04(金) 06:57:13.54ID:2Xve1BBy >>396
良く分からんが、こんなのでどうですかね?
-------foo.bat
@findstr ^^ < con
-------Prompt.vbs
Function Prompt(Text,Default)
WScript.Echo(Text)
Set WshShell = CreateObject("WScript.Shell")
Set oExec = WshShell.exec("foo.bat")
Prompt = oExec.stdout.ReadLine()
oExec.terminate
End Function
msgbox Prompt("test dayo","")
良く分からんが、こんなのでどうですかね?
-------foo.bat
@findstr ^^ < con
-------Prompt.vbs
Function Prompt(Text,Default)
WScript.Echo(Text)
Set WshShell = CreateObject("WScript.Shell")
Set oExec = WshShell.exec("foo.bat")
Prompt = oExec.stdout.ReadLine()
oExec.terminate
End Function
msgbox Prompt("test dayo","")
401デフォルトの名無しさん
2019/10/04(金) 08:44:14.07ID:2Xve1BBy バッチ不要だな
Set oExec = WshShell.exec("cmd /c findstr /R . < con")
最後に1023文字しか表示されないなReadLineのせいか?
Set oExec = WshShell.exec("cmd /c findstr /R . < con")
最後に1023文字しか表示されないなReadLineのせいか?
402デフォルトの名無しさん
2019/10/04(金) 12:18:00.19ID:mgLzdBVB ありがとうございます
Function Prompt(Text,Default)
WScript.Echo(Text)
Set WshShell = CreateObject("WScript.Shell")
'Set oExec = WshShell.exec("cmd /c title " & Replace(Replace(Text,vbCr,""),vbLf,"") & " && type con")
Set oExec = WshShell.exec("cmd /c cmd /c findstr /R . < con")
Prompt = oExec.stdout.ReadLine()
oExec.terminate
End Function
msgbox LEN(Prompt("test dayo",""))
でやると8190でるのでmsgboxの表示制限っぽいです
上限が512から8190まで増えました♪
Function Prompt(Text,Default)
WScript.Echo(Text)
Set WshShell = CreateObject("WScript.Shell")
'Set oExec = WshShell.exec("cmd /c title " & Replace(Replace(Text,vbCr,""),vbLf,"") & " && type con")
Set oExec = WshShell.exec("cmd /c cmd /c findstr /R . < con")
Prompt = oExec.stdout.ReadLine()
oExec.terminate
End Function
msgbox LEN(Prompt("test dayo",""))
でやると8190でるのでmsgboxの表示制限っぽいです
上限が512から8190まで増えました♪
403デフォルトの名無しさん
2019/10/04(金) 12:44:51.20ID:2Xve1BBy それは良かった
ところで cmd /c cmd /c と2重になってるのは何か意味が?
ところで cmd /c cmd /c と2重になってるのは何か意味が?
404デフォルトの名無しさん
2019/10/04(金) 12:49:02.43ID:mgLzdBVB 単なるミスですw
405デフォルトの名無しさん
2019/10/04(金) 20:33:36.96ID:igWxDR2f >>402
HTAで作るって方向は無いのかな?
WScriptオブジェクトは使えないけど、IEと違ってローカル処理はできるよ
全部HTAにするのが面倒ならUI部分をHTAで作って
そこから、各々vbsを起動するようにするとか
サンプル http://www.42ch.net/UploaderSmall/source/1570156236.zip
HTAで作るって方向は無いのかな?
WScriptオブジェクトは使えないけど、IEと違ってローカル処理はできるよ
全部HTAにするのが面倒ならUI部分をHTAで作って
そこから、各々vbsを起動するようにするとか
サンプル http://www.42ch.net/UploaderSmall/source/1570156236.zip
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- 中国高官と話す外務省局長の表情、やばい [175344491]
- 港区、中国に宣戦布告 中国外務省をおちょくる掲示物を展示 [175344491]
- 【ほんこん悲報】吉本新喜劇の中国公演が中止に! [523957489]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 小野田経済安保相「すぐに経済的威圧するところへの依存はリスク」😲 [861717324]
