1 名前:デフォルトの名無しさん mailto:sage [2018/11/21(水) 14:52:07.84 ID:v84I4o+L.net] 拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる 質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。 ※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。 前スレ 【.cmd】 バッチファイルスクリプト %11 【.bat】©2ch.net echo.2ch.net/test/read.cgi/tech/1424858999/ 【.cmd】 バッチファイルスクリプト %12 【.bat】 https://mevius.5ch.net/test/read.cgi/tech/1489207631/ それ以前の過去スレ %10 peace.2ch.net/test/read.cgi/tech/1374205515/ %9 toro.2ch.net/test/read.cgi/tech/1335015478/ %8 toro.2ch.net/test/read.cgi/tech/1315844420/ %7 hibari.2ch.net/test/read.cgi/tech/1298873550/ %6 hibari.2ch.net/test/read.cgi/tech/1277465356/ %5 pc12.2ch.net/test/read.cgi/tech/1242268171/ %4 pc12.2ch.net/test/read.cgi/tech/1229955189/ %3 pc11.2ch.net/test/read.cgi/tech/1217860043/ %2 pc12.2ch.net/test/read.cgi/tech/1197881068/ %1 pc11.2ch.net/test/read.cgi/tech/1178281991/
357 名前:デフォルトの名無しさん mailto:sage [2019/08/14(水) 12:07:08.56 ID:tEu06J9P.net] 空白行があるのがまずいのです。
358 名前:デフォルトの名無しさん mailto:sage [2019/08/15(木) 07:26:44.38 ID:mKbuBo/x.net] echo onで見るとechoが消えてる for /L %i in (1 1 3) do (%i)
359 名前:デフォルトの名無しさん mailto:sage [2019/08/15(木) 07:36:02.85 ID:mKbuBo/x.net] 今、気付いたけど for/Lのカウントの区切り文字は半角スペースでもいいんだな
360 名前:デフォルトの名無しさん mailto:sage [2019/08/15(木) 12:44:36.23 ID:ALsBqyPd.net] なんで"("のあとでエスケープしてるんだ?
361 名前:デフォルトの名無しさん mailto:sage [2019/08/15(木) 18:55:50.85 ID:8DKeAJZl.net] >>348 エスケープすると長い記述を改行分割できる。 下記なら動くのではと想像 @echo off for /l %%i in (1,1,3) do (^ ^ echo %%i ) pause
362 名前:デフォルトの名無しさん mailto:sage [2019/08/15(木) 18:58:32.85 ID:8DKeAJZl.net] こうかも。 違いはechoの前の半角スペースの有無 @echo off for /l %%i in (1,1,3) do (^ ^ echo %%i ) pause
363 名前:デフォルトの名無しさん mailto:sage [2019/08/15(木) 20:14:09.75 ID:bAdklReO.net] >>350 横からだが、だとしても ”(” の直後には不要でしょう わざわざ地雷踏みにいってるとしか思えない
364 名前:デフォルトの名無しさん mailto:sage [2019/08/15(木) 20:20:13.66 ID:hL4sD0l+.net] >>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
365 名前:デフォルトの名無しさん mailto:sage [2019/08/16(金) 13:12:21.88 ID:nbkgz595.net] 元々^が要らんのは分かるが 何で2行下のechoが消えるんだ?
366 名前:デフォルトの名無しさん mailto:sage [2019/08/16(金) 19:53:07.91 ID:tgbth6lv.net] 何が正解か良く分からないけど「echo」が消えているのではなく 「echo %%i」が実行された結果「%i」って文字列が出力されて いるんじゃないかな
367 名前:デフォルトの名無しさん mailto:sage [2019/08/17(土) 03:04:11.02 ID:loMKkBUO.net] うん、メッセージを出したかったら、 echo [メッセ−ジ文] だよね。
368 名前:デフォルトの名無しさん mailto:sage [2019/08/17(土) 07:25:02.72 ID:u1p0gnkJ.net] >>346 を見ろ
369 名前:332 mailto:sage [2019/08/17(土) 18:15:26.70 ID:etNorZr1.net] はろー♪ @echo off (^ rem echo Hello, World!) pause
370 名前:デフォルトの名無しさん mailto:sage [2019/08/17(土) 21:41:43.17 ID:nWccZbx0.net] >>357 cmd のパーサーが馬鹿なだけ。 そういうトリッキーな小賢しい書き方を探しても誰も幸せになれない。
371 名前:デフォルトの名無しさん mailto:sage [2019/08/17(土) 23:29:25.24 ID:u1p0gnkJ.net] >>357 そういうのはもういいから
372 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 20:01:18.85 ID:S2+8M2EA.net] 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」に変えて実行すると、何もファイルが表示されませんでした。
373 名前:エクスプローラでは表示されるのに… [] [ここ壊れてます]
374 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 20:06:19.31 ID:WpfDQiIq.net] まずは対象ファイルの属性を確認かな
375 名前:デフォルトの名無しさん mailto:sage [2019/08/20(火) 20:39:45.13 ID:WpfDQiIq.net] ここに詳しく書いてある https://freesoft.tvbok.com/web/ie/ie11ie10webcache.html
376 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 17:07:15.01 ID:C82bQLaF.net] 任意のテキストファイルの各行(1〜N)を、 変数のARRAY[1〜N]にそのまま代入できますか? テキストは空行あり、文字化けは無しで。
377 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 18:13:13.64 ID:C82bQLaF.net] すみません N行は指定じゃなくて全行です
378 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 19:43:28.54 ID:hATE1ff9.net] >>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)
379 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 20:46:06.08 ID:C82bQLaF.net] >>365 ありがとうございました シフトJISで動作しました
380 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 00:24:30.62 ID:dLbvCDhA.net] 発見 call は遅い 自バッチ内であっても繰り返しの中では使わないほうがよい
381 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 02:06:06.88 ID:KhyCGx+x.net] それは分かる 何かいい方法が有ったら書いてくれ
382 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 07:34:22.10 ID:KhyCGx+x.net] ループの中では、call setも遅いな call先はバッチが基本なので %path%のフォルダ内にset.batが存在しないか ループの中で毎回、無駄に検索して時間のロスに
383 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 13:05:56.96 ID:4qIvp+ND.net] フルパスか相対パスで書けばいいのに
384 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 15:06:36.69 ID:ny+pXiR9.net] クリーンに再実装しようとしてもうまく行かないし、Windows Terminalのオプソ化に期待
385 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 21:47:05.78 ID:KhyCGx+x.net] 内部コマンドsetにフルパス?
386 名前:デフォルトの名無しさん mailto:sage [2019/09/17(火) 21:00:42.57 ID:Syn6UaDZ.net] ポータブルデバイスにフォルダ移動したいのですがどのコマンドを使えばよろしいのでしょうか? 宜しくお願いします。
387 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 07:27:23.31 ID:zCU+H1xg.net] robocopy
388 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 22:10:15.94 ID:zS9nLp3S.net] >>374 回答ありがとございます。 試してみましたがうまくいきませんでした。
389 名前:デフォルトの名無しさん mailto:sage [2019/09/19(木) 17:48:14.75 ID:W0BHkkEI.net] そのポータブルデバイスとやらのスレで聞け
390 名前:デフォルトの名無しさん mailto:sage [2019/09/19(木) 19:33:15.60 ID:UaiZGsoz.net] >>373 MTP接続しているデバイスにbatでフォルダ移動したいということ?
391 名前:デフォルトの名無しさん mailto:sage [2019/09/19(木) 21:49:07.77 ID:oZTJ7ty8.net] >>377 MTP接続しているデバイスの端末(スマホ)のフォルダをCドライブにコピーしたいのです。 何度もありがとございます。
392 名前:デフォルトの名無しさん mailto:sage [2019/09/20(金) 18:54:32.90 ID:YblgUZDU.net] >>378 MTPにWindowsからアクセスする場合にはWDP (Windows Portable Device)という 仕組みを使ってアクセスする必要があるらしいのでPowerShellとかVBSみたいな COMオブジェクトに対応しているスクリプト言語を使うかプログラミングしないと 無理みたいだけど
393 名前:デフォルトの名無しさん mailto:sage [2019/09/20(金) 20:53:45.43 ID:C2+cwByF.net] >>379 なるほどコマンドだけでは出来ないのですね。ありがとうございました。
394 名前:デフォルトの名無しさん mailto:sage [2019/09/20(金) 21:22:16.17 ID:CafmkPOq.net] mtpじゃなくftp使えばいいんじゃない
395 名前:デフォルトの名無しさん mailto:sage [2019/09/20(金) 23:15:32.97 ID:Va/jwPX
] [ここ壊れてます]
396 名前:C.net mailto: スレチだけど、横から失礼。 今USBで繋いだスマホのファイルをPCのexplorerで見てたら、 どうしても表示されないファイルが一部あるんだよ。 表示を更新してもダメだ。何なんだろ、これ。 スマホ側でzipに圧縮したら転送できたんだが。 [] [ここ壊れてます]
397 名前:デフォルトの名無しさん mailto:sage [2019/09/21(土) 09:52:34.32 ID:obXFPJy6.net] >>382 MTPは本来画像とか音声とか映像ファイルを共有するための規格なんだけど それでは不便なので実装者が拡張して他のファイルも見えるようにしているらしい でWindowsのexplorerで削除できないファイルってのは何種類かあるけど表示 できないってのは覚えがないのでスマホ側の実装の問題じゃないかな
398 名前:デフォルトの名無しさん mailto:sage [2019/09/21(土) 11:24:33.96 ID:aqL81KxG.net] >>383 スマホのandroidがおかしいのかも explorerでコピペしたら 全数処理できてるか要確認ですね
399 名前:デフォルトの名無しさん mailto:sage [2019/09/21(土) 12:19:59.86 ID:Zmbs8cMB.net] >>382 メディアストレージのDBが壊れてるか更新されてないだけでは?
400 名前:デフォルトの名無しさん mailto:sage [2019/09/21(土) 12:39:19.92 ID:aqL81KxG.net] >>385 zip圧縮後、繋ぎ直したらzipは表示されたが元ファイルは非表示、 なので更新というより壊れてたみたいね
401 名前:デフォルトの名無しさん mailto:sage [2019/09/21(土) 23:40:04.00 ID:bVn3Z6J/.net] >>378 Android Debug Bridge(adb)を使用してはどうでしょうか? https://developer.android.com/studio/command-line/adb.html?hl=ja#copyfiles 例)adb pull remote local ただしワイルドカードが使用できないので工夫が必要かも
402 名前:デフォルトの名無しさん mailto:sage [2019/09/22(日) 06:16:16.89 ID:9I7oEjtC.net] そもそもAndroidなのか?
403 名前:デフォルトの名無しさん mailto:sage [2019/09/23(月) 04:39:39.37 ID:LINEF6Ks.net] >>387 adbを使用したらうまくいきました。 ありがとうございました。
404 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 22:20:01.40 ID:vtcCH4Ws.net] vbsスクリプト使用者に対話型でURLを入力させようと思い inputboxを使用していましたが254文字以降は切り捨てられるようで 切り捨てられた場合にcmdを呼んでコマンドプロンプトで TYPE CONで入力させ標準出力からとろうと思いました。 コマンドプロンプトから TYPE CON で文字入力していくと510文字しか打てません COPY CON で文字入力していく場合も510文字しか打てません ただこちらは改行して2回目以降の文字入力は254文字までしか打てません コマンドプロンプトはwindowsの仕様だともっと入力できたはずだと思うんですけど TYPE COPYコマンドが原因なのでしょうか? 上限が512-2 256-2なのが気になります
405 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 22:57:55.77 ID:co/wCjS7.net] >>390 set /p var で入力すると1023文字入力できるみたい
406 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 23:08:42.31 ID:vtcCH4Ws.net] >>391 ありがとうございます 環境変数に突っ込んでそっちからとる案ってことですね
407 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 23:19:31.66 ID:co/wCjS7.net] 標準出力がいいなら echo %var% を最後に付けとけばうまくいかないかな?
408 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 23:41:17.62 ID:vtcCH4Ws.net] いえVBSで環境変数からでも取れるんでどちらでもいいんですが この方法は毎回ファイル書き込みはいるのなら避けたいですね
409 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 06:03:26.81 ID:qiM7wE73.net] >>390 findstr ^^ ではどうですか? 入力の最後は改行とCtrl+Z 8000文字は入ったが、それ以上は試していない
410 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 19:45:19.23 ID:+nOn2TPH.net] >>395 ありがとうございます。たしかにfindstr ^^ 試すと長く入力できますね ただスクリプトが動く動きません(type con copy con以外) たぶんexecで標準入出力を横取りしてるからなのかなと思ったんですけどならtype conはなぜ動くのかという気もします //Prompt.vbs
411 名前: 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","") [] [ここ壊れてます]
412 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 20:43:23.90 ID:jymbX9V4.net] cmdじゃないけど powershell -Command $a=read-host; write-host $a とかどうよ
413 名前:デフォルトの名無しさん mailto:sage [2019/10/03(木) 21:20:07.70 ID:+nOn2TPH.net] 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","")
414 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 05:33:06.84 ID:igWxDR2f.net] >>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","")
415 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 06:57:13.54 ID:2Xve1BBy.net] >>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","")
416 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 08:44:14.07 ID:2Xve1BBy.net] バッチ不要だな Set oExec = WshShell.exec("cmd /c findstr /R . < con") 最後に1023文字しか表示されないなReadLineのせいか?
417 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 12:18:00.19 ID:mgLzdBVB.net] ありがとうございます 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まで増えました♪
418 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 12:44:51.20 ID:2Xve1BBy.net] それは良かった ところで cmd /c cmd /c と2重になってるのは何か意味が?
419 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 12:49:02.43 ID:mgLzdBVB.net] 単なるミスですw
420 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 20:33:36.96 ID:igWxDR2f.net] >>402 HTAで作るって方向は無いのかな? WScriptオブジェクトは使えないけど、IEと違ってローカル処理はできるよ 全部HTAにするのが面倒ならUI部分をHTAで作って そこから、各々vbsを起動するようにするとか サンプル www.42ch.net/UploaderSmall/source/1570156236.zip
421 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 07:49:09.72 ID:XliNsfqD.net] ありがとうございます HTAも便利そうですね アドレスバー,リンクをドラッグドロップで取り込めるのがいいなと
422 名前:デフォルトの名無しさん mailto:sage [2019/10/07(月) 16:39:36.79 ID:/M5l0Sli.net] そういやHTAはHighDPI対応してないのかな サーフェスで苦労した覚えが
423 名前:デフォルトの名無しさん mailto:sage [2019/10/09(水) 19:08:15.06 ID:tUBbtl1D.net] 文字列の画面表示の桁数はバッチで取得できますか? 半角1で全角2での合計みたいな
424 名前:デフォルトの名無しさん mailto:sage [2019/10/10(木) 19:46:16.73 ID:NVkes/cJ.net] >>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 桁数=
425 名前: %b% & pause & goto :eof :x setlocal enabledelayedexpansion echo.!s! echo. 入力はシフトJISで表示できる文字のみです。 CP932で正常に動作します。たぶん。 [] [ここ壊れてます]
426 名前:デフォルトの名無しさん mailto:sage [2019/10/10(木) 23:42:47.50 ID:T8I5o9Ey.net] mode con かも
427 名前:デフォルトの名無しさん mailto:sage [2019/10/11(金) 07:29:52.81 ID:D9aa0x5a.net] >>409 ,>>410 ありがとうございました! コードページは932でしたので問題ないです これで複数のデータを右詰めで揃えて表示できました タブ入りだと表示がズレますが自分で対処します
428 名前:デフォルトの名無しさん mailto:sage [2019/10/18(金) 19:14:42.75 ID:MUFbi2Ng.net] 特定の2つのフォルダ内を一括削除するbatの作り方がわかりません…。 1つだけならば出来るのですが2つ指定するにはどうすればいいのでしょうか お願いします
429 名前:デフォルトの名無しさん mailto:sage [2019/10/18(金) 19:26:30.68 ID:sHZx2IDB.net] 1行目にAフォルダを削除 次の行にBフォルダを削除でいいんじゃないの? 1行に書きたければ 複数のコマンドを続けて実行する https://www.adminweb.jp/command/action/index1.html
430 名前:デフォルトの名無しさん mailto:sage [2019/10/18(金) 19:28:12.11 ID:DNcfAKqA.net] 2回やるbatを作ればいいのでは?
431 名前:デフォルトの名無しさん mailto:sage [2019/10/18(金) 19:29:32.93 ID:DNcfAKqA.net] あ、かぶってしまった
432 名前:デフォルトの名無しさん mailto:sage [2019/10/18(金) 22:56:14.67 ID:ZkRket+3.net] for %%I in ( C:\AAA C:\BBB ) do del /Q %%I\*.*
433 名前:デフォルトの名無しさん mailto:sage [2019/10/18(金) 23:57:13.31 ID:uNKAmOCu.net] for /f %%i in ('dir /b^|find "foo"') do pause fooが無かった場合pauseしてくれないのですが解決策ありませんか? 実際はfooの有無で分岐させるのですがとりあえずpauseで書いてます
434 名前:デフォルトの名無しさん mailto:sage [2019/10/19(土) 00:21:50.04 ID:nJ40H8MU.net] >>417 (for /f %%i in ('dir /b^|find "foo"') do pause) || pause
435 名前:デフォルトの名無しさん mailto:sage [2019/10/19(土) 00:29:35.02 ID:lUUAms6Y.net] >>418 ありがとう、できたらfor内で分岐したい…
436 名前:デフォルトの名無しさん mailto:sage [2019/10/19(土) 00:34:28.69 ID:nJ40H8MU.net] forのループは条件が一致しないとすり抜けて 1回も通らないで次のステートメントにいっちゃうから無理 無理矢理やろうとすると、ダミー項目を与えて必ず一度はforループを実行するようにして その中でダミー項目だったら〜と条件判定することになる
437 名前:デフォルトの名無しさん mailto:sage [2019/10/19(土) 00:43:02.67 ID:nJ40H8MU.net] こんな感じ for /f %%i in ('dir /b^|find "foo"^|^|echo none') do (if "%%i" equ "none" echo ありません)
438 名前:デフォルトの名無しさん mailto:sage [2019/10/19(土) 00:49:42.45 ID:nJ40H8MU.net] 俺としては>>418 の方が見やすくて間違いが少なくて済むと思う
439 名前:デフォルトの名無しさん mailto:sage [2019/10/19(土) 01:05:43.14 ID:lUUAms6Y.net] なるほど||つかう手もあるんですね for入れ子にしてるから||でいきますありがとう
440 名前:デフォルトの名無しさん mailto:sage [2019/10/19(土) 01:26:01.92 ID:nJ40H8MU.net] forの後で、%errorlevel%で判断できるかと思ったけど forのコマンドは子タスクで実行されるから環境を親タスクに引き継がないんだね こういうことはパイプの右側でも起きるけど
441 名前: mailto:sage [2019/10/19(Sat) 07:15:14 ID:azMLqhGk.net] for /f "delims=" %%i in ('dir/b *foo* 2^>nul ^|^| echo *') do ( if "%%~i"=="*" (echo ないよ) else echo %%i )
442 名前:デフォルトの名無しさん mailto:sage [2019/10/20(日) 07:21:20.34 ID:bUbbfXYV.net] for /f "delims=" %%i in ('"dir/b *foo* 2>&1"') do if not exist %%i echo %%i
443 名前:デフォルトの名無しさん mailto:sage [2019/10/21(月) 18:09:26.80 ID:8RixcIVS.net] なんか古代呪文を撃ちあってるみたい(^_^;)
444 名前:デフォルトの名無しさん mailto:sage [2019/10/21(月) 21:05:31.60 ID:Sv6Oxatw.net] そう、実は、古代語魔術(ハイエンシェント)を打ち合っているのです。 スレ違いだけれど、 魔法の使い方 https://eman-physics.net/columns/magic.html を、思い出した。
445 名前:デフォルトの名無しさん mailto:sage [2019/10/21(月) 22:05:11 ID:nEQALG6h.net] ザイログニーモニックは忘れた
446 名前:デフォルトの名無しさん mailto:sage [2019/10/22(火) 23:09:34.31 ID:jiuE9ZBi.net] 詠唱せよ
447 名前:デフォルトの名無しさん [2019/10/27(日) 14:29:49.16 ID:Lik42TLZ.net] cmd.exe /c start ってネットワークドライブのファイル開けないんでしたっけ? cmd.exe /c start t:\test.txt ってやると アクセスが拒否されました。って表示される。c:\以下なら大丈夫 cmd.exe /c start file:\\t:\test.txt ってやれば開けるからいいんだけど
448 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 19:40:17.02 ID:n+Gkmfbl.net] cmd /c start t:\test.txt と start t:\test.txt の違いは?
449 名前:デフォルトの名無しさん [2019/10/27(日) 19:45:47.81 ID:QHyOIS3t.net] startが内部コマンド
450 名前:デフォルトの名無しさん mailto:sage [2019/10/27(日) 19:54:44.57 ID:n+Gkmfbl.net] なんで cmd /c が必要?
451 名前:デフォルトの名無しさん [2019/10/27(日) 22:46:50.23 ID:8uvk7ayg.net] >>434 ぐぐれかす
452 名前:蟻人間 mailto:sage [2019/10/27(日) 23:17:38.75 ID:cNZwDfUU.net] >>434 内部コマンドは実行可能なモジュールではなく、cmd内部でのみ実行可能だから。 内部コマンドはcmdで解釈・実行される。
453 名前:デフォルトの名無しさん mailto:sage [2019/10/28(月) 01:22:07 ID:YqbFbBrf.net] >>434 バッチでは cmd /c は不要ですね。 cmd /c があれば子プロセスになります。 どっちも結果は同じ。エディタが起動します。 「ファイル名を指定して実行」の入力なら、 cmd /c start は不要かと思います。 でも、あっても間違いではないです。
454 名前:デフォルトの名無しさん mailto:sage [2019/10/28(月) 02:10:13 ID:t0sY5Haq.net] そんなこと聞いてないから、>>431 に答えてくれ
455 名前:438 mailto:sage [2019/10/28(月) 02:18:17.09 ID:bqlyCkZ6.net] ネットワークフォルダをドライブに割り当てた問題かと思えば 関係なさそうだ。でも不思議だ cmd.exe /c start \\server\folder だとフォルダが開ける cmd.exe /c start \\server\folder\subfolder でも問題ない cmd.exe /c start \\server\folder\test.txt だとアクセスが拒否される でもエクスプローラーのアドレスバーに ↑ を入れるとメモ帳で開ける
456 名前:デフォルトの名無しさん mailto:sage [2019/10/28(月) 03:05:07.76 ID:ML+fUsJB.net] 管理者権限でやってみては?
457 名前:438 mailto:sage [2019/10/28(月) 03:54:57.58 ID:bqlyCkZ6.net] アクセスが拒否されました