拡張子が .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
379デフォルトの名無しさん
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
414デフォルトの名無しさん
2019/10/18(金) 19:28:12.11ID:DNcfAKqA 2回やるbatを作ればいいのでは?
415デフォルトの名無しさん
2019/10/18(金) 19:29:32.93ID:DNcfAKqA あ、かぶってしまった
416デフォルトの名無しさん
2019/10/18(金) 22:56:14.67ID:ZkRket+3 for %%I in ( C:\AAA C:\BBB ) do del /Q %%I\*.*
417デフォルトの名無しさん
2019/10/18(金) 23:57:13.31ID:uNKAmOCu for /f %%i in ('dir /b^|find "foo"') do pause
fooが無かった場合pauseしてくれないのですが解決策ありませんか?
実際はfooの有無で分岐させるのですがとりあえずpauseで書いてます
fooが無かった場合pauseしてくれないのですが解決策ありませんか?
実際はfooの有無で分岐させるのですがとりあえずpauseで書いてます
418デフォルトの名無しさん
2019/10/19(土) 00:21:50.04ID:nJ40H8MU >>417
(for /f %%i in ('dir /b^|find "foo"') do pause) || pause
(for /f %%i in ('dir /b^|find "foo"') do pause) || pause
419デフォルトの名無しさん
2019/10/19(土) 00:29:35.02ID:lUUAms6Y >>418
ありがとう、できたらfor内で分岐したい…
ありがとう、できたらfor内で分岐したい…
420デフォルトの名無しさん
2019/10/19(土) 00:34:28.69ID:nJ40H8MU forのループは条件が一致しないとすり抜けて
1回も通らないで次のステートメントにいっちゃうから無理
無理矢理やろうとすると、ダミー項目を与えて必ず一度はforループを実行するようにして
その中でダミー項目だったら〜と条件判定することになる
1回も通らないで次のステートメントにいっちゃうから無理
無理矢理やろうとすると、ダミー項目を与えて必ず一度はforループを実行するようにして
その中でダミー項目だったら〜と条件判定することになる
421デフォルトの名無しさん
2019/10/19(土) 00:43:02.67ID:nJ40H8MU こんな感じ
for /f %%i in ('dir /b^|find "foo"^|^|echo none') do (if "%%i" equ "none" echo ありません)
for /f %%i in ('dir /b^|find "foo"^|^|echo none') do (if "%%i" equ "none" echo ありません)
422デフォルトの名無しさん
2019/10/19(土) 00:49:42.45ID:nJ40H8MU 俺としては>>418の方が見やすくて間違いが少なくて済むと思う
423デフォルトの名無しさん
2019/10/19(土) 01:05:43.14ID:lUUAms6Y なるほど||つかう手もあるんですね
for入れ子にしてるから||でいきますありがとう
for入れ子にしてるから||でいきますありがとう
424デフォルトの名無しさん
2019/10/19(土) 01:26:01.92ID:nJ40H8MU forの後で、%errorlevel%で判断できるかと思ったけど
forのコマンドは子タスクで実行されるから環境を親タスクに引き継がないんだね
こういうことはパイプの右側でも起きるけど
forのコマンドは子タスクで実行されるから環境を親タスクに引き継がないんだね
こういうことはパイプの右側でも起きるけど
425デフォルトの名無しさん
2019/10/19(土) 07:15:14.93ID:azMLqhGk for /f "delims=" %%i in ('dir/b *foo* 2^>nul ^|^| echo *') do (
if "%%~i"=="*" (echo ないよ) else echo %%i
)
if "%%~i"=="*" (echo ないよ) else echo %%i
)
426デフォルトの名無しさん
2019/10/20(日) 07:21:20.34ID:bUbbfXYV for /f "delims=" %%i in ('"dir/b *foo* 2>&1"') do if not exist %%i echo %%i
427デフォルトの名無しさん
2019/10/21(月) 18:09:26.80ID:8RixcIVS なんか古代呪文を撃ちあってるみたい(^_^;)
428デフォルトの名無しさん
2019/10/21(月) 21:05:31.60ID:Sv6Oxatw そう、実は、古代語魔術(ハイエンシェント)を打ち合っているのです。
スレ違いだけれど、
魔法の使い方
https://eman-physics.net/columns/magic.html
を、思い出した。
スレ違いだけれど、
魔法の使い方
https://eman-physics.net/columns/magic.html
を、思い出した。
429デフォルトの名無しさん
2019/10/21(月) 22:05:11.02ID:nEQALG6h ザイログニーモニックは忘れた
430デフォルトの名無しさん
2019/10/22(火) 23:09:34.31ID:jiuE9ZBi 詠唱せよ
431デフォルトの名無しさん
2019/10/27(日) 14:29:49.16ID:Lik42TLZ cmd.exe /c start ってネットワークドライブのファイル開けないんでしたっけ?
cmd.exe /c start t:\test.txt ってやると
アクセスが拒否されました。って表示される。c:\以下なら大丈夫
cmd.exe /c start file:\\t:\test.txt ってやれば開けるからいいんだけど
cmd.exe /c start t:\test.txt ってやると
アクセスが拒否されました。って表示される。c:\以下なら大丈夫
cmd.exe /c start file:\\t:\test.txt ってやれば開けるからいいんだけど
432デフォルトの名無しさん
2019/10/27(日) 19:40:17.02ID:n+Gkmfbl cmd /c start t:\test.txt
と
start t:\test.txt
の違いは?
と
start t:\test.txt
の違いは?
433デフォルトの名無しさん
2019/10/27(日) 19:45:47.81ID:QHyOIS3t startが内部コマンド
434デフォルトの名無しさん
2019/10/27(日) 19:54:44.57ID:n+Gkmfbl なんで cmd /c が必要?
435デフォルトの名無しさん
2019/10/27(日) 22:46:50.23ID:8uvk7ayg >>434
ぐぐれかす
ぐぐれかす
436蟻人間 ◆T6xkBnTXz7B0
2019/10/27(日) 23:17:38.75ID:cNZwDfUU437デフォルトの名無しさん
2019/10/28(月) 01:22:07.40ID:YqbFbBrf >>434
バッチでは cmd /c は不要ですね。
cmd /c があれば子プロセスになります。
どっちも結果は同じ。エディタが起動します。
「ファイル名を指定して実行」の入力なら、
cmd /c start は不要かと思います。
でも、あっても間違いではないです。
バッチでは cmd /c は不要ですね。
cmd /c があれば子プロセスになります。
どっちも結果は同じ。エディタが起動します。
「ファイル名を指定して実行」の入力なら、
cmd /c start は不要かと思います。
でも、あっても間違いではないです。
438デフォルトの名無しさん
2019/10/28(月) 02:10:13.65ID:t0sY5Haq そんなこと聞いてないから、>>431に答えてくれ
439438
2019/10/28(月) 02:18:17.09ID:bqlyCkZ6 ネットワークフォルダをドライブに割り当てた問題かと思えば
関係なさそうだ。でも不思議だ
cmd.exe /c start \\server\folder だとフォルダが開ける
cmd.exe /c start \\server\folder\subfolder でも問題ない
cmd.exe /c start \\server\folder\test.txt だとアクセスが拒否される
でもエクスプローラーのアドレスバーに ↑ を入れるとメモ帳で開ける
関係なさそうだ。でも不思議だ
cmd.exe /c start \\server\folder だとフォルダが開ける
cmd.exe /c start \\server\folder\subfolder でも問題ない
cmd.exe /c start \\server\folder\test.txt だとアクセスが拒否される
でもエクスプローラーのアドレスバーに ↑ を入れるとメモ帳で開ける
440デフォルトの名無しさん
2019/10/28(月) 03:05:07.76ID:ML+fUsJB 管理者権限でやってみては?
441438
2019/10/28(月) 03:54:57.58ID:bqlyCkZ6 アクセスが拒否されました
442デフォルトの名無しさん
2019/10/28(月) 07:04:53.54ID:YqbFbBrf >>438 すみません。私には分かりません。
cmd/c を省略、 さらに start を省略しても同じアクセス拒否ですか?
cmd/c を省略、 さらに start を省略しても同じアクセス拒否ですか?
443デフォルトの名無しさん
2019/10/28(月) 08:16:04.60ID:kjzN6NI8 >>439
>cmd.exe /c start \\server\folder\test.txt だとアクセスが拒否される
>でもエクスプローラーのアドレスバーに ↑ を入れるとメモ帳で開ける
このコマンドには、メモ帳を起動すると書いていないから、起動できないだろ
拡張子から、起動するアプリを取得できないだろ?
そういう情報は、レジストリに入っているから、
バッチファイルから、そこへアクセスできるか?
>cmd.exe /c start \\server\folder\test.txt だとアクセスが拒否される
>でもエクスプローラーのアドレスバーに ↑ を入れるとメモ帳で開ける
このコマンドには、メモ帳を起動すると書いていないから、起動できないだろ
拡張子から、起動するアプリを取得できないだろ?
そういう情報は、レジストリに入っているから、
バッチファイルから、そこへアクセスできるか?
444443
2019/10/28(月) 08:20:10.88ID:kjzN6NI8 普通に「notepad パス付きファイル名」なら、起動できるだろ?
445デフォルトの名無しさん
2019/10/29(火) 07:53:25.61ID:SHkVBveq >>439
エクスプローラーのバーに書くのも cmd/c start は要らんぞ
エクスプローラーのバーに書くのも cmd/c start は要らんぞ
446デフォルトの名無しさん
2019/10/29(火) 11:55:42.58ID:w4Uxvw1j >>443
バッチからでも関連付け起動できるぞ
バッチからでも関連付け起動できるぞ
447デフォルトの名無しさん
2019/10/29(火) 12:51:26.56ID:SHkVBveq448デフォルトの名無しさん
2019/10/29(火) 12:53:59.00ID:SHkVBveq ああ1行目にゴミが付いたw 無視してくれ
449デフォルトの名無しさん
2019/10/29(火) 13:09:40.06ID:YQKoC2Uo コマンドプロンプトの文字コードがよくわからん。
なんでchcp 932なのにUnicodeが表示できてるんだ?
chcpの設定とは無関係に画面はUnicodeで変換してるんか?
なんでchcp 932なのにUnicodeが表示できてるんだ?
chcpの設定とは無関係に画面はUnicodeで変換してるんか?
450デフォルトの名無しさん
2019/10/29(火) 13:26:49.20ID:SHkVBveq バッチはSJIS
リダイレクトするとSJIS
画面はユニコード
set はユニコード特有文字でも入る(cmd画面で入力なら)
cmdの内部処理はユニコード
リダイレクトするとSJIS
画面はユニコード
set はユニコード特有文字でも入る(cmd画面で入力なら)
cmdの内部処理はユニコード
451デフォルトの名無しさん
2019/10/29(火) 13:34:20.85ID:spBBwL/I Unicodeはいいが文字コードは何なんだ?
UTF-8なのか?UTF-16なのか?
UTF-8なのか?UTF-16なのか?
452デフォルトの名無しさん
2019/10/29(火) 13:37:09.01ID:SHkVBveq 16
453デフォルトの名無しさん
2019/10/29(火) 13:40:11.15ID:spBBwL/I >>452
と思うやろ?
typeコマンドは文字コード変換してるかもしれんなと思って
copy ファイル名 CON なら、そのまんま表示されるだろうと
思ってやってみたら、
UTF-8は問題なく表示されて、UTF-16は文字化けしてるんだよ。
Windows 10で仕様でも変わったんか?
と思うやろ?
typeコマンドは文字コード変換してるかもしれんなと思って
copy ファイル名 CON なら、そのまんま表示されるだろうと
思ってやってみたら、
UTF-8は問題なく表示されて、UTF-16は文字化けしてるんだよ。
Windows 10で仕様でも変わったんか?
454デフォルトの名無しさん
2019/10/29(火) 13:47:51.80ID:SHkVBveq 変わらず
後は自分で調べろ
後は自分で調べろ
455デフォルトの名無しさん
2019/10/29(火) 13:53:47.92ID:spBBwL/I わからんのかーいw
456デフォルトの名無しさん
2019/10/29(火) 14:01:37.87ID:SHkVBveq 図に乗るな
457デフォルトの名無しさん
2019/10/29(火) 14:15:50.84ID:spBBwL/I やっぱり仕様が変わってた。
Windows 7だとchcp 932の時、
copy test.txt CON で正しく表示できるのはShiftJISだけ
UTF-8でもUTF-16LEでも文字化けする。
Windows 10だと逆に、UTF-8(BOMなし)、UTF-16LEは
正しく表示できるが、ShiftJISは文字化けする。
Windows 7だとchcp 932の時、
copy test.txt CON で正しく表示できるのはShiftJISだけ
UTF-8でもUTF-16LEでも文字化けする。
Windows 10だと逆に、UTF-8(BOMなし)、UTF-16LEは
正しく表示できるが、ShiftJISは文字化けする。
458デフォルトの名無しさん
2019/10/29(火) 14:23:41.56ID:SHkVBveq そうなのか
でも内部が16だと思うが
分からん
でも内部が16だと思うが
分からん
459デフォルトの名無しさん
2019/10/29(火) 14:27:54.02ID:spBBwL/I Windows 7でもdirコマンドでShiftJISにない文字は表示できてるから
最終的にはUnicodeなんだろう(おそらくUTF16だと思うが)
その途中になんかあるんだろうな。
Windows 10でcopy CONつかってるのに、UTF-8とUTF-16の両方が
文字化けしないのが不思議だ・・・って思ったら、
あれ?UTF-16文字化けしてた。んん?間違ってtypeで表示してたか。
これなら理解できる。
最終的にはUnicodeなんだろう(おそらくUTF16だと思うが)
その途中になんかあるんだろうな。
Windows 10でcopy CONつかってるのに、UTF-8とUTF-16の両方が
文字化けしないのが不思議だ・・・って思ったら、
あれ?UTF-16文字化けしてた。んん?間違ってtypeで表示してたか。
これなら理解できる。
460デフォルトの名無しさん
2019/10/29(火) 14:44:03.37ID:XkpxJQc3 >>457
いつのWindows10だね?
いつのWindows10だね?
461デフォルトの名無しさん
2019/10/29(火) 14:52:33.20ID:spBBwL/I >>460
今の最新の公式リリース
今の最新の公式リリース
462デフォルトの名無しさん
2019/10/29(火) 14:56:43.68ID:spBBwL/I なんかわかりづらくなったので再掲
copy test.txt CONで検証
Windows7、chcp 932・・・text.txt が ShiftJIS だと正しく表示される
Windows10、chcp 932・・・text.txt が UTF-8(BOMなし) だと正しく表示される
copy test.txt CONで検証
Windows7、chcp 932・・・text.txt が ShiftJIS だと正しく表示される
Windows10、chcp 932・・・text.txt が UTF-8(BOMなし) だと正しく表示される
463デフォルトの名無しさん
2019/10/29(火) 16:52:33.42ID:spBBwL/I なんかいろいろ勘違いしてたっぽい
copy CONつかってもどこかの誰かが変換かましてるっぽい
こんな漢字でバイナリ直接吐き出したら、chcp 932ではSJISしか正しく表示されなかった。
chcp 65001にしたらUTF8だけ
Windows 10でだけど、たぶんWindows 7でも同じじゃないかな?
#include <iostream>
int main()
{
unsigned char str[] = { 0xE6, 0xBC, 0xA2, 0xE5, 0xAD, 0x97, 0xE2, 0x9D, 0xA4 };
std::cout.write((char*)&str, sizeof(str));
}
copy CONつかってもどこかの誰かが変換かましてるっぽい
こんな漢字でバイナリ直接吐き出したら、chcp 932ではSJISしか正しく表示されなかった。
chcp 65001にしたらUTF8だけ
Windows 10でだけど、たぶんWindows 7でも同じじゃないかな?
#include <iostream>
int main()
{
unsigned char str[] = { 0xE6, 0xBC, 0xA2, 0xE5, 0xAD, 0x97, 0xE2, 0x9D, 0xA4 };
std::cout.write((char*)&str, sizeof(str));
}
464デフォルトの名無しさん
2019/10/29(火) 17:46:22.44ID:4a4kNF+Q 一つわかった気がする。
コマンドプロンプトはUnicode対応してるけどバッチファイルはUnicode対応じゃないんだ。
(正確にはchcp 65001を実行すれば、UTF-8のバッチファイルを実行できる)
だからchcp 932のままコマンドプロンプトでUnicode文字を使うことができるけど
バッチファイルにするとそれができない。
コマンドプロンプトはUnicode対応してるけどバッチファイルはUnicode対応じゃないんだ。
(正確にはchcp 65001を実行すれば、UTF-8のバッチファイルを実行できる)
だからchcp 932のままコマンドプロンプトでUnicode文字を使うことができるけど
バッチファイルにするとそれができない。
465デフォルトの名無しさん
2019/10/29(火) 17:46:59.43ID:wQOUEDyj テキストストリームだけしか通さないから何らかの変換が入ってるのかも知れないね
copy /b hoge.txt con
指定されたデバイスに書き込めません。
0 個のファイルをコピーしました。
copy /b hoge.txt con
指定されたデバイスに書き込めません。
0 個のファイルをコピーしました。
466デフォルトの名無しさん
2019/10/29(火) 18:03:33.66ID:4a4kNF+Q あ、copyに/bオプションなんてあったのか・・・
467デフォルトの名無しさん
2019/10/29(火) 18:10:48.74ID:4a4kNF+Q そんな馬鹿な・・・。Windows 10でもShiftJISじゃないと表示されなくなっただと?
何度も確認したはずだぞ???
何度も確認したはずだぞ???
468デフォルトの名無しさん
2019/10/29(火) 18:37:30.30ID:tLCpEMn0 Windows10については徐々に更新されているらしい
Windows Command-Line: Unicode and UTF-8 Output Text Buffer
https://devblogs.microsoft.com/commandline/windows-command-line-unicode-and-utf-8-output-text-buffer/
Windows Command-Line: Unicode and UTF-8 Output Text Buffer
https://devblogs.microsoft.com/commandline/windows-command-line-unicode-and-utf-8-output-text-buffer/
469デフォルトの名無しさん
2019/10/29(火) 19:04:08.72ID:SHkVBveq 少し前にここで同様の話題が有ったが UTF-8(BOM無し) のテキストは
たとえ chcp 65001 しても type で一部分文字化けする
findstr ^^ foo.txt
で正常に表示されるはず(chcp 65001 で)
たとえ chcp 65001 しても type で一部分文字化けする
findstr ^^ foo.txt
で正常に表示されるはず(chcp 65001 で)
470デフォルトの名無しさん
2019/10/29(火) 19:08:30.96ID:SHkVBveq あと chcp 65001 しても UTF-8 のバッチは
正常に動作しないと思った方がいい
正常に動作しないと思った方がいい
471デフォルトの名無しさん
2019/10/29(火) 20:31:39.34ID:ltL5L5Cn あぁ、クソ。意味がわからんけど、理由がわかった。
1. まず、utf8.txt の中身をUTF-8で作る。ShiftJISにない文字も入れておく。
2. chcp を実行。「現在のコード ページ: 932」と表示されることを確認する。
3. コマンドプロンプトを起動して、type utf8.txt にして文字化けすることを確認する
ここまではなんの変哲もない。
4. powershell.exe -Command [Console]::OutputEncoding = [Text.Encoding]::UTF8 を実行する
5. type utf8.txt を実行すると文字化けしない(!)
6. chcp を実行。「Active code page: 932」と表示される。932なのになぜか英語(!)
chcpを変更してもとに戻すと、元に戻るし、
powershell -Command [Console]::OutputEncoding = [Text.Encoding]::Default を実行しても元に戻る
子プロセスであるはずのpowershellがなにかコマンドプロンプトの状態を変えてやがる。
なんだこれ?コマンドプロンプトに英語モードとかあったっけ?
1. まず、utf8.txt の中身をUTF-8で作る。ShiftJISにない文字も入れておく。
2. chcp を実行。「現在のコード ページ: 932」と表示されることを確認する。
3. コマンドプロンプトを起動して、type utf8.txt にして文字化けすることを確認する
ここまではなんの変哲もない。
4. powershell.exe -Command [Console]::OutputEncoding = [Text.Encoding]::UTF8 を実行する
5. type utf8.txt を実行すると文字化けしない(!)
6. chcp を実行。「Active code page: 932」と表示される。932なのになぜか英語(!)
chcpを変更してもとに戻すと、元に戻るし、
powershell -Command [Console]::OutputEncoding = [Text.Encoding]::Default を実行しても元に戻る
子プロセスであるはずのpowershellがなにかコマンドプロンプトの状態を変えてやがる。
なんだこれ?コマンドプロンプトに英語モードとかあったっけ?
472デフォルトの名無しさん
2019/10/29(火) 20:34:10.83ID:ltL5L5Cn コマンドプロンプトを起動するのは2の時の間違いな
473デフォルトの名無しさん
2019/10/29(火) 20:38:52.72ID:ltL5L5Cn この話から気づくと思うけど、
powershell -Command [Console]::OutputEncoding
初期状態は、日本語 (シフト JIS)
powershell -Command [Console]::OutputEncoding = [Text.Encoding]::UTF8
これでUTF-8に変更して
powershell -Command [Console]::OutputEncoding
現在の設定を確認すると、UTF-8になってる。
chcpの値は変わらんのに、コードページを変えることができてしまっているかのようだ。
powershell -Command [Console]::OutputEncoding
初期状態は、日本語 (シフト JIS)
powershell -Command [Console]::OutputEncoding = [Text.Encoding]::UTF8
これでUTF-8に変更して
powershell -Command [Console]::OutputEncoding
現在の設定を確認すると、UTF-8になってる。
chcpの値は変わらんのに、コードページを変えることができてしまっているかのようだ。
474デフォルトの名無しさん
2019/10/29(火) 21:33:51.82ID:ltL5L5Cn Windows 7にPowerShell6をインストールしてやってみたけど、
pwsh -Command [Console]::OutputEncoding = [Text.Encoding]::UTF8 で
コードページが変わるな。Windows 7はまともに動かないので画面がバグるw
pwsh -Command [Console]::OutputEncoding = [Text.Encoding]::UTF8 で
コードページが変わるな。Windows 7はまともに動かないので画面がバグるw
475デフォルトの名無しさん
2019/10/29(火) 21:41:58.40ID:ltL5L5Cn なるほど、SetConsoleOutputCPでコマンドプロンプトのコードページを変更できるらしい
http://tooljp.com/language/C-Languate/sample-code/SetConsoleOutputCP-sample-code.html
http://tooljp.com/language/C-Languate/sample-code/SetConsoleOutputCP-sample-code.html
476デフォルトの名無しさん
2019/10/30(水) 07:47:21.02ID:WNRoeYsC おれもコードページ弄って色々やったが上手くいかなかった
typeは一部ダメ、moreは全くダメ、findstrはリダイレクトするとダメ、
copy〜conは utf-7とjis が一部ダメ、
for〜do echoでやると空行が抜けてダメという具合
typeは一部ダメ、moreは全くダメ、findstrはリダイレクトするとダメ、
copy〜conは utf-7とjis が一部ダメ、
for〜do echoでやると空行が抜けてダメという具合
477デフォルトの名無しさん
2019/10/30(水) 08:50:12.52ID:BvOaIOcB エディタがあれば必要ない
478デフォルトの名無しさん
2019/10/30(水) 11:07:44.00ID:iT3/p0k9 >>476
なんとなく画面に表示する部分にバグがあるから
バッチファイル内で閉じて画面に表示しなければ、chcp 65001で動くような気がする。
あとWindows 10ではそこらへんが直ってるので同じように考えるのは早計
なんとなく画面に表示する部分にバグがあるから
バッチファイル内で閉じて画面に表示しなければ、chcp 65001で動くような気がする。
あとWindows 10ではそこらへんが直ってるので同じように考えるのは早計
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国営メディア「沖縄は日本ではない」… [BFU★]
- 【こんなの初めて…】民泊には既にキャンセルも 中国の渡航自粛で [ぐれ★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」 [ぐれ★]
- 「稼ぐのよ!」高市総理が電話ガチャ切りで伝えたこと 鈴木憲和農林水産大臣が国政報告会に出席 自身が目指す農政の方針語る [煮卵★]
- 「どうしようもない」 ため息つくアジアの玄関口 中国の訪日自粛で−福岡市 [蚤の市★]
- 俳優 高岡蒼佑「エジプト出身とかナイジェリア出身とかの人が、日本の代表顔して移民の事とか話してるの見るとなんか違う気がする」★2 [Anonymous★]
- 【高市悲報】アメリカ戦争省「あのさ、何回シミュレートしてもわーくに中国に負けちゃうんだよね🤗」 [359965264]
- 自民「高市の一言でこれまで積み上げてきた関係が駄目になる。言葉の重みを分かっていない。自分でまいた種は自分で刈り取ってもらう」 [256556981]
- 中国国営放送「日本は琉球をただちに中国に返還せよ」 キタ━━━━(゚∀゚)━━━━!!!!! [314039747]
- 中国発日本行の航空券、491,000件(全体の32%)がキャンセルされたと判明。高市どうすんのこれ [603416639]
- 識者「『フリーパレスチナ』とかイキってる連中が台湾の話になると『中国を怒らせるな!』ってなる。ほんと左翼の正義って薄っぺらい」 [279254606]
- 日本株、大暴落!!! [252835186]
