拡張子が .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
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
406デフォルトの名無しさん
2019/10/05(土) 07:49:09.72ID:XliNsfqD ありがとうございます
HTAも便利そうですね
アドレスバー,リンクをドラッグドロップで取り込めるのがいいなと
HTAも便利そうですね
アドレスバー,リンクをドラッグドロップで取り込めるのがいいなと
407デフォルトの名無しさん
2019/10/07(月) 16:39:36.79ID:/M5l0Sli そういやHTAはHighDPI対応してないのかな
サーフェスで苦労した覚えが
サーフェスで苦労した覚えが
408デフォルトの名無しさん
2019/10/09(水) 19:08:15.06ID:tUBbtl1D 文字列の画面表示の桁数はバッチで取得できますか?
半角1で全角2での合計みたいな
半角1で全角2での合計みたいな
409デフォルトの名無しさん
2019/10/10(木) 19:46:16.73ID:NVkes/cJ >>408
@echo off & if "%~1"=="1" goto x
set c=call "%~0" 1 ^^^| findstr /o /r .*
set o="skip=1 delims=:" & set /p s=文字列=
for /f %o% %%i in ('%c%') do set /a b=%%i-2
echo 桁数= %b% & pause & goto :eof
:x
setlocal enabledelayedexpansion
echo.!s!
echo.
入力はシフトJISで表示できる文字のみです。
CP932で正常に動作します。たぶん。
@echo off & if "%~1"=="1" goto x
set c=call "%~0" 1 ^^^| findstr /o /r .*
set o="skip=1 delims=:" & set /p s=文字列=
for /f %o% %%i in ('%c%') do set /a b=%%i-2
echo 桁数= %b% & pause & goto :eof
:x
setlocal enabledelayedexpansion
echo.!s!
echo.
入力はシフトJISで表示できる文字のみです。
CP932で正常に動作します。たぶん。
410デフォルトの名無しさん
2019/10/10(木) 23:42:47.50ID:T8I5o9Ey mode con かも
411デフォルトの名無しさん
2019/10/11(金) 07:29:52.81ID:D9aa0x5a412デフォルトの名無しさん
2019/10/18(金) 19:14:42.75ID:MUFbi2Ng 特定の2つのフォルダ内を一括削除するbatの作り方がわかりません…。
1つだけならば出来るのですが2つ指定するにはどうすればいいのでしょうか
お願いします
1つだけならば出来るのですが2つ指定するにはどうすればいいのでしょうか
お願いします
413デフォルトの名無しさん
2019/10/18(金) 19:26:30.68ID:sHZx2IDB 1行目にAフォルダを削除
次の行にBフォルダを削除でいいんじゃないの?
1行に書きたければ
複数のコマンドを続けて実行する
https://www.adminweb.jp/command/action/index1.html
次の行にBフォルダを削除でいいんじゃないの?
1行に書きたければ
複数のコマンドを続けて実行する
https://www.adminweb.jp/command/action/index1.html
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか… [BFU★]
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… [BFU★]
- 中国国営メディア「沖縄は日本ではない」…★7 [BFU★]
- バービー、 台湾有事の発言の波紋で「たまったもんじゃない」「高市さんに真意は聞きたい」「国民に向けて説明してほしい」 [muffin★]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 高市早苗、岸田政権(当時)に「台湾有事は日本の有事か」という質問をしていた [175344491]
- 【悲報】高市早苗周辺「支持層が離れるので今更発言を撤回できない」 [935793931]
- 【感動】山上徹也「頑張れ、お兄ちゃんが守ってやる」妹へのメールが公開
- 青椒肉絲、牛肉ではなく豚肉を使うのが本物だった
- 【悲報】中国→日本行きの航空チケット、高市有事の影響で50万人分がキャンセルされる [834922174]
