[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 08/13 02:16 / Filesize : 294 KB / Number-of Response : 1050
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【.cmd】 バッチファイルスクリプト %13 【.bat】



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]
アクセスが拒否されました






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<294KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef