【.cmd】 バッチファイルスクリプト %15 【.bat】 (864レス)
【.cmd】 バッチファイルスクリプト %15 【.bat】 http://mevius.5ch.net/test/read.cgi/tech/1663153441/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
576: デフォルトの名無しさん [] 2024/11/06(水) 19:42:12.98 ID:0Z0sjFnd てすと.com http://mevius.5ch.net/test/read.cgi/tech/1663153441/576
577: デフォルトの名無しさん [sage] 2024/11/07(木) 07:18:54.75 ID:diE3Ipx6 >>575 @echo off & chcp 65001 set a="%cmdcmdline:"=" "%" call :x > list.txt & exit :x set a=%a:*.bat" =% for %%i in (%a:""=%) do set a=%%i& call :y exit /b :y if "%a:~1,1%"==" " set a=%a: =" "% for %%i in (%a:""=%) do echo %%~nxi list.txt は UTF-8 にしてみた バッチの拡張子は .bat http://mevius.5ch.net/test/read.cgi/tech/1663153441/577
578: デフォルトの名無しさん [] 2024/11/07(木) 10:34:25.11 ID:sTPvG4+T 初めからコマンドプロンプトでやればいいのに http://mevius.5ch.net/test/read.cgi/tech/1663153441/578
579: デフォルトの名無しさん [] 2024/11/07(木) 10:35:43.77 ID:sTPvG4+T まずは特定のフォルダにファイルを集めるという発想がないんだろうな http://mevius.5ch.net/test/read.cgi/tech/1663153441/579
580: デフォルトの名無しさん [] 2024/11/07(木) 11:01:23.05 ID:5OQwBO7R batファイルで=を含む置換えの時の方法教えてください。 入力は Hello World 12=34 @echo off set /p mystringA=あいさつ: set mystringB=%mystringA:12=34=4567% echo %mystringB% 結果をこのようにしたい Hello World 4567 http://mevius.5ch.net/test/read.cgi/tech/1663153441/580
581: デフォルトの名無しさん [sage] 2024/11/07(木) 12:14:54.61 ID:9xnRXsv4 >>580 batだけでやるには大変(=の置換は無理) 変換前に1文字ずつ判定して=だったら普通使われない文字(=とか)に変えるとかしないとできない 別の方法としては別の言語でサポートしてやれば楽 @if (0)==(0) echo off rem *** このブロックにbat内容を記述する set s=Hello World 12=34 cscript //nologo /e:jscript "%~f0" "%s%" rem for /f "tokens=*" %%i in ('cscript //nologo /e:jscript "%~f0" "%s%"') do set s=%%i rem echo %s% goto :eof rem *** @end //これ以降はjscriptの処理部 var data=WScript.Arguments(0).replace(/12=34/g,"4567"); WScript.StdOut.WriteLine(data); http://mevius.5ch.net/test/read.cgi/tech/1663153441/581
582: デフォルトの名無しさん [] 2024/11/07(木) 12:33:40.59 ID:5OQwBO7R >>581 サイトによって特殊文字は^だったり"を使ったりで試して出来なかった 代案をわざわざありがとうございます^^ http://mevius.5ch.net/test/read.cgi/tech/1663153441/582
583: デフォルトの名無しさん [sage] 2024/11/07(木) 13:07:58.08 ID:sK42d9tR >>577 神様ありがとう なんでかわからないけど動きました list. txtを%USERPROFILE%\Desktopに作成するにはどのようにすれば? 単純に "%USERPROFILE\Desktop\list.txt" に変更してもダメでした http://mevius.5ch.net/test/read.cgi/tech/1663153441/583
584: デフォルトの名無しさん [sage] 2024/11/07(木) 14:02:09.09 ID:DJJuXIJX エクスプローラーで「パスのコピー」あるの知ってる? windows11 なら選択後に shift+ctrl+c バッチとかいらんだろ http://mevius.5ch.net/test/read.cgi/tech/1663153441/584
585: デフォルトの名無しさん [sage] 2024/11/07(木) 16:57:38.50 ID:sK42d9tR >>577 >583 今やったらできました お騒がせしました もしよろしければ 解説お願いします http://mevius.5ch.net/test/read.cgi/tech/1663153441/585
586: デフォルトの名無しさん [] 2024/11/08(金) 02:14:23.67 ID:NHkTpL6A del /q "C:\Users\%username%\Desktop\新しいフォルダー" これで新しいフォルダー内が消えないのですが? http://mevius.5ch.net/test/read.cgi/tech/1663153441/586
587: デフォルトの名無しさん [] 2024/11/08(金) 03:03:23.20 ID:NHkTpL6A 日本語のファルダだとダメなんですかね? http://mevius.5ch.net/test/read.cgi/tech/1663153441/587
588: デフォルトの名無しさん [sage] 2024/11/08(金) 03:07:22.26 ID:8ciHN7a8 文字コードが違うんじゃないですかね http://mevius.5ch.net/test/read.cgi/tech/1663153441/588
589: デフォルトの名無しさん [] 2024/11/08(金) 03:20:42.79 ID:NHkTpL6A なるほど理解しました http://mevius.5ch.net/test/read.cgi/tech/1663153441/589
590: デフォルトの名無しさん [] 2024/11/08(金) 03:24:29.70 ID:NHkTpL6A rdコマンドで親フォルダを削除しないようにするにはどう書けば良いのでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1663153441/590
591: デフォルトの名無しさん [] 2024/11/08(金) 03:36:30.13 ID:NHkTpL6A rdコマンドで無理なら対象のフォルダ以下にあるファイルやフォルダを全て削除するものでもかまいません。 http://mevius.5ch.net/test/read.cgi/tech/1663153441/591
592: デフォルトの名無しさん [sage] 2024/11/08(金) 10:30:14.55 ID:n9fsiKUu カレント移動すれば? http://mevius.5ch.net/test/read.cgi/tech/1663153441/592
593: デフォルトの名無しさん [sage] 2024/11/08(金) 11:10:01.65 ID:PSMBlcAH フォルダーごと削除してから新規作成したほうが簡単じゃね http://mevius.5ch.net/test/read.cgi/tech/1663153441/593
594: デフォルトの名無しさん [sage] 2024/11/08(金) 11:27:40.63 ID:IbrHrevx 俺の環境だと>>586で消えるけど、/q付けないでやったらファイル削除確認メッセージが出てるか? 出てないなら中身のファイルの属性が隠しファイルになってるとか http://mevius.5ch.net/test/read.cgi/tech/1663153441/594
595: デフォルトの名無しさん [sage] 2024/11/08(金) 23:02:21.70 ID:gP+dh+BC del /q "新しいフォルダー\*" for /d %%i in ("新しいフォルダー\*") do rd /s /q "%%~i" http://mevius.5ch.net/test/read.cgi/tech/1663153441/595
596: デフォルトの名無しさん [sage] 2024/11/09(土) 11:03:02.45 ID:bVsLqwPh cd "新しいフォルダー" && 2> nul rd /s /q . http://mevius.5ch.net/test/read.cgi/tech/1663153441/596
597: デフォルトの名無しさん [] 2024/11/09(土) 11:39:56.84 ID:L7dYAlvM >>581 またつまづきました>< 入力 12&encoding=se34 56=78 これで&encoding=seを削除したくて set "s=%s:^&=%" で&を通したんですが 'encoding'は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチファイルとして認識されません。 となって出来ないです set "s=%s:^encoding=%" data = data.replace(/&encoding=se/g, ""); のように加えてもダメでした どうすればいいですか? http://mevius.5ch.net/test/read.cgi/tech/1663153441/597
598: デフォルトの名無しさん [sage] 2024/11/09(土) 13:08:18.35 ID:q8k7iVH6 宿題は自分で考えよう http://mevius.5ch.net/test/read.cgi/tech/1663153441/598
599: デフォルトの名無しさん [sage] 2024/11/09(土) 13:14:42.95 ID:L+GgUCLJ バッチでjscriptに渡す前に&が解釈されてるのかな?知らんけど できないです、どうすればいいですかではなく どこでエラーになってるか突き止めるのが先なのと 文字列処理したいなら違う言語例えばjscriptを覚えた方がよいかと http://mevius.5ch.net/test/read.cgi/tech/1663153441/599
600: デフォルトの名無しさん [sage] 2024/11/09(土) 13:21:59.27 ID:L+GgUCLJ jscriptは>>581のようにOS標準で入ってる古いjavascript 最近の構文は一部使えないがバッチよりも動作が高速で正規表現など文字列処理にも適している 他にpowershellもある http://mevius.5ch.net/test/read.cgi/tech/1663153441/600
601: デフォルトの名無しさん [sage] 2024/11/09(土) 14:09:23.50 ID:A663IrvX &はbatでの特殊記号であり、コマンドの区切りの意味がある set a=aaaa&set b=bbb&set c=ccc とか複数の命令を1行で書ける 他に&&,||もある http://mevius.5ch.net/test/read.cgi/tech/1663153441/601
602: デフォルトの名無しさん [sage] 2024/11/09(土) 14:31:25.85 ID:A663IrvX もしかして、set /p mystringA=あいさつ:で入力したときの話か? なら、""で括れ set /p "mystringA=あいさつ:" set mystringA="%mystringA:&=%" echo "%mystringA%" http://mevius.5ch.net/test/read.cgi/tech/1663153441/602
603: デフォルトの名無しさん [sage] 2024/11/09(土) 14:37:00.85 ID:A663IrvX set mystringA="%mystringA:&=%"→set "mystringA=%mystringA:&=%" http://mevius.5ch.net/test/read.cgi/tech/1663153441/603
604: デフォルトの名無しさん [sage] 2024/11/09(土) 14:43:11.36 ID:A663IrvX あと>>581はデータを引数渡し("%s%")してるので、「"」をデータ内に入れることができない ファイル渡しすれば確実だが、他に環境変数(s)で渡す場合を示しておく data=new ActiveXObject("WScript.Shell").Environment("Process")("s").replace(/12=34/g,"4567"); http://mevius.5ch.net/test/read.cgi/tech/1663153441/604
605: デフォルトの名無しさん [sage] 2024/11/09(土) 15:04:16.22 ID:A663IrvX ついでに、&について 通常は使わなくても次の行に書けばいいが 閉じた環境からのデータを引渡ししたい場合などはどうしても使わなければならない set a=1 call :sub echo %a% goto :eof :sub setlocal set /a a+=1 endlocal&set a=%a% goto :eof http://mevius.5ch.net/test/read.cgi/tech/1663153441/605
606: デフォルトの名無しさん [sage] 2024/11/09(土) 18:43:13.91 ID:L+GgUCLJ >endlocal&set a=%a% こんなキモい書き方した事ないな そもそもsetlocalだかは弊害もあるから使わずに書く事を意識した方がいいね このスレは安易に使いすぎてる http://mevius.5ch.net/test/read.cgi/tech/1663153441/606
607: デフォルトの名無しさん [sage] 2024/11/09(土) 19:20:02.72 ID:KYeqqNmx ここはキモイ人ばっかりですから問題ないです笑 http://mevius.5ch.net/test/read.cgi/tech/1663153441/607
608: デフォルトの名無しさん [sage] 2024/11/10(日) 07:08:12.44 ID:3mwMiYGo 遅延展開以外はsetlocalなんて滅多に使わんが他にどうしろと http://mevius.5ch.net/test/read.cgi/tech/1663153441/608
609: デフォルトの名無しさん [sage] 2024/11/10(日) 10:11:26.77 ID:zZSAaq07 setlocal enabledelayedexpansionは書く人多いけど endlocalで閉じてる人見たこと無い http://mevius.5ch.net/test/read.cgi/tech/1663153441/609
610: デフォルトの名無しさん [sage] 2024/11/10(日) 14:06:03.62 ID:9SnRMU05 そりゃあ終了したら効果が無くなるんだから文法マニアくらいしか書かんだろう http://mevius.5ch.net/test/read.cgi/tech/1663153441/610
611: デフォルトの名無しさん [sage] 2024/11/10(日) 18:35:44.79 ID:i0Pkbsqf サブルーチンでsetlocal enabledelayedexpansionを使ったら endlocalを書かないと呼び出すたびに環境がコピーされていって あっという間に正常に動作できなくなるさ http://mevius.5ch.net/test/read.cgi/tech/1663153441/611
612: デフォルトの名無しさん [sage] 2024/11/10(日) 19:42:53.96 ID:9SnRMU05 サブルーチンに置くというのは想定しなかったな メインの、というかスクリプトの先頭に置く使い方しかしてないや http://mevius.5ch.net/test/read.cgi/tech/1663153441/612
613: デフォルトの名無しさん [sage] 2024/11/10(日) 20:44:53.21 ID:Hbc3IhS3 call先にsetlocalがあってもexit /bやgoto :eofで戻ると 変数復元されるのでendlocalは不要だが有ってもいい やばいのはforやgotoでのループ内部にsetlocalしかないやつ http://mevius.5ch.net/test/read.cgi/tech/1663153441/613
614: デフォルトの名無しさん [] 2024/11/10(日) 21:35:28.96 ID:p0BF9o8N >>604 ありがとう。 何時間かやってるけどうまくいかないです。 ?@if (0)==(0) echo off rem *** :start ?set /p "ss=ss:" ?set "ss=%ss:&=%" ?set /p "savename=保存名:" ?set ss=%ss% option "%savename%" ?echo %ss%確認1 ?cscript //nologo /e:jscript "%~f0" "%URL%" rem ***for /f "tokens=*" %%i in ('cscript //nologo /e:jscript "%~f0" "%ss%"') do set ss= %%i ?echo %ss%確認2 goto :start rem *** ?@end // JScript部分 // var data = WScript.Arguments(0); ?data=new ActiveXObject("WScript.Shell").Environment("Process")("ss"); ?data = data.replace(/aaaaa/g, "bbbbb"); ?data = data.replace(/12=34/g, "56=78"); ?data = data.replace(/encoding=seg/g, ""); ?WScript.StdOut.WriteLine(data); ?WScript.Quit(); これでやると?で?〜?が無視される。 ?にvarという変数を与えても同じ。 ?をdata = WScript.Arguments(0);にすると与えた入力が途中で途切れる(実際の入力値に”が入ってるため) ?の代わりにfor文だとbatが落ちる(AppleWebKit/537.36 の使い方が誤っています。) こういうのをスラスラ書ける天才たちがうらやましい。 http://mevius.5ch.net/test/read.cgi/tech/1663153441/614
615: デフォルトの名無しさん [sage] 2024/11/10(日) 22:06:03.40 ID:zZSAaq07 forの中の"%ss%"を削除すれば? http://mevius.5ch.net/test/read.cgi/tech/1663153441/615
616: デフォルトの名無しさん [sage] 2024/11/10(日) 22:08:14.92 ID:cLh8//6O うーんよく判らんけど もう入力データはjscipt内でWScript.StdIn.ReadLine();からで拾ってきた方が早くね?とか バッチはjsciptの呼び出し部分だけ残して全部jscriptでやった方が楽じゃね?とは思った http://mevius.5ch.net/test/read.cgi/tech/1663153441/616
617: デフォルトの名無しさん [sage] 2024/11/10(日) 22:19:31.51 ID:zZSAaq07 ファイル名として使っちゃダメな文字(又はデバイス名)ってのもあるので そういうのが入力されたら別文字に変えるとか削除するとかしないとダメになるぞ http://mevius.5ch.net/test/read.cgi/tech/1663153441/617
618: デフォルトの名無しさん [sage] 2024/11/10(日) 23:54:47.86 ID:cLh8//6O 上で言った楽なやつね。叩き台としてどうかな @if (0)==(0) echo off set ss= :start echo %ss%確認1 rem cscript //nologo /e:jscript "%~f0" "%ss%" for /f "tokens=*" %%i in ('cscript //nologo /e:jscript "%~f0" "%ss%"') do set ss=%%i echo %ss%確認2 goto :start @end // JScript部分 var data = ""; if (WScript.Arguments.Count() > 0) { // 渡された引数がある data = WScript.Arguments(0); if (data != "") { WScript.StdErr.WriteLine("渡された引数:" + data); } } WScript.StdErr.Write("ss:"); // バッチのfor入力から除外するためプロンプトをエラー出力で表示 var ss = WScript.StdIn.ReadLine(); WScript.StdErr.Write("保存名:"); data = WScript.StdIn.ReadLine(); data = data.replace(/aaaaa/g, "bbbbb"); data = data.replace(/12=34/g, "56=78"); data = data.replace(/encoding=seg/g, ""); WScript.StdOut.WriteLine(data); http://mevius.5ch.net/test/read.cgi/tech/1663153441/618
619: デフォルトの名無しさん [sage] 2024/11/11(月) 00:41:06.56 ID:ggA4ksL2 "%ss%"を引数につけてると 入力に"を入れられると二週目からエラーとなる http://mevius.5ch.net/test/read.cgi/tech/1663153441/619
620: デフォルトの名無しさん [sage] 2024/11/11(月) 00:55:30.51 ID:ggA4ksL2 入力データから"を削除するようにしたほうがいい ファイル名にも"は使えないから必要ないだろ それと基本文字列を扱う場合は""で括ること echo %ss%→echo "%ss%" じゃないと、&|などでエラーになるし、^も消えるとかいろいろ起きる (a^b.txtは正常なファイル名) http://mevius.5ch.net/test/read.cgi/tech/1663153441/620
621: デフォルトの名無しさん [sage] 2024/11/11(月) 01:34:01.29 ID:ggA4ksL2 "%ss%"でエラーになってるのはbatでの構文解釈時なのでjscriptでの対処云々以前の問題 http://mevius.5ch.net/test/read.cgi/tech/1663153441/621
622: デフォルトの名無しさん [] 2024/11/11(月) 02:13:27.56 ID:BY3zyfqu みなさんありがとう。 理想なのができたので、まず、 ?をfor /f "tokens=*" %%i in ('cscript //nologo /e:jscript "%~f0" ') do set ss= %%i >>615 ありがとう。たったこれだけだったよ >>616,618 文字制限で入力ができなかった。 でもそういうやり方もあるんだと学べたのでありがとう >>619,620,621 このbatの後に渡されるexeの処理に””で括っておかないとexeのほうでエラーになる ちゃんとそこを伝えれてなかったね、ごめん 回答してくれてありがとう これWScript.StdIn.ReadLine();をchat gptで文字制限を聞いたら?のような入力方法だったよ とはいえ、ありがとうございました>< http://mevius.5ch.net/test/read.cgi/tech/1663153441/622
623: デフォルトの名無しさん [] 2024/11/11(月) 03:53:20.62 ID:vS/DyEQP batというプログラミング初めてです。 初心者に良いサイト教えてください。 Windows 10です。 http://mevius.5ch.net/test/read.cgi/tech/1663153441/623
624: デフォルトの名無しさん [sage] 2024/11/11(月) 04:28:35.50 ID:UKR+WOTm >>623 www.google.co.jp http://mevius.5ch.net/test/read.cgi/tech/1663153441/624
625: デフォルトの名無しさん [] 2024/11/13(水) 02:26:15.40 ID:AkCTz+Wd BATでこんなすごいことできるぞってのを教えてくださいハゲども http://mevius.5ch.net/test/read.cgi/tech/1663153441/625
626: デフォルトの名無しさん [sage] 2024/11/13(水) 02:26:54.33 ID:HWwn2oWP >>622 すっかり忘れてたけど "tokens=*"じゃ先頭が半角スペースやタブだと消えるし、セミコロンだとスキップされるという問題があった バッチはクセがありすぎる eolのデフォルトが;で、しかも"eol="だと今度は"が指定されたことになるとかウソーって言いたい for /f delims^=^ eol^= %%i in ('cscript //nologo /e:jscript "%~f0"') do set ss=%%i http://mevius.5ch.net/test/read.cgi/tech/1663153441/626
627: デフォルトの名無しさん [] 2024/11/14(木) 11:47:50.65 ID:oC8TllJp @echo off set T=%tmp%\tmp.txt type nul>%T% for %%f in (%*) do ( >>%tmp%\tmp.txt echo %%~nxf ) type %T% | clip これだと正常に取得できません 正常にファイル名を取得できるようにするにはどう書けばいいでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1663153441/627
628: デフォルトの名無しさん [sage] 2024/11/14(木) 11:50:39.07 ID:WvtXCkNi 他の「ふつう」の環境選ぶのがええよ http://mevius.5ch.net/test/read.cgi/tech/1663153441/628
629: デフォルトの名無しさん [sage] 2024/11/14(木) 14:18:34.94 ID:q/WsLCXM >>627 半角空白が無くて全角空白があるファイルをドロップするとファイル名はそこで分かれる 過去ログにやり方はあるけど簡単なのは親フォルダ名のどこかに半角空白を入れておく それ以外で正常にできないといってるのならもう少し現象を説明してもらわないと 俺達はエスパーじゃないんだから http://mevius.5ch.net/test/read.cgi/tech/1663153441/629
630: 627 [] 2024/11/14(木) 15:26:47.13 ID:oC8TllJp >>629 すいません 2つのフォルダーと2つのテキストを用意し、この4つ全てを選択してコピーしたら一つしかコピーできなかったりして正常に動作しません http://mevius.5ch.net/test/read.cgi/tech/1663153441/630
631: デフォルトの名無しさん [sage] 2024/11/14(木) 15:48:05.37 ID:X91uzdxk >>584 見ろ http://mevius.5ch.net/test/read.cgi/tech/1663153441/631
632: デフォルトの名無しさん [sage] 2024/11/14(木) 16:15:29.07 ID:q/WsLCXM >>630 コピーって何? 一例としてエクスプローラで複数のファイルを選択反転してbatのショートカットにD&Dしたら 選択したファイルのファイル名がクリップボードに入ってるだろ どこにコピーする操作が加わるんだ? http://mevius.5ch.net/test/read.cgi/tech/1663153441/632
633: 627 [] 2024/11/14(木) 17:07:59.07 ID:oC8TllJp >>632 ファイル名のコピーです http://mevius.5ch.net/test/read.cgi/tech/1663153441/633
634: デフォルトの名無しさん [sage] 2024/11/14(木) 17:19:32.22 ID:q/WsLCXM ファイル名のコピーしたならもうbatを動かすまでもなくファイル名一覧がクリップボードに入ってるじゃん そもそもクリップボードに入ってるものを入力するようにはそのbatはできてないじゃんか http://mevius.5ch.net/test/read.cgi/tech/1663153441/634
635: 627 [] 2024/11/14(木) 17:27:06.24 ID:oC8TllJp そのファイル名のコピーがうまくいかないのです http://mevius.5ch.net/test/read.cgi/tech/1663153441/635
636: デフォルトの名無しさん [sage] 2024/11/14(木) 17:38:15.36 ID:q/WsLCXM 何をしたいのかちゃんと説明できないのなら付きあえないよ そのbatは、引数に列記されたファイル(パス)名を順次入力してファイル名のみにして列記した一覧をクリップボードに入れるということをやってる 【オペレーション例】 コマンドプロンプトを立ち上げて hoge.bat "c:\aa.txt" "c:\bb.txt" "c:\cc.txt" と入力したら aa.txt bb.txt cc.txt とクリップボードに入る http://mevius.5ch.net/test/read.cgi/tech/1663153441/636
637: 627 [] 2024/11/14(木) 17:41:20.12 ID:oC8TllJp わかりました 失礼しました http://mevius.5ch.net/test/read.cgi/tech/1663153441/637
638: デフォルトの名無しさん [] 2024/12/11(水) 20:24:09.34 ID:y+gluRXv BATだけでパスワード生成する方法を教えてください。 生成したパスワードをクリップボードにコピーする形でお願いします。 http://mevius.5ch.net/test/read.cgi/tech/1663153441/638
639: 638 [] 2024/12/11(水) 22:00:19.62 ID:y+gluRXv 自己解決しました。 http://mevius.5ch.net/test/read.cgi/tech/1663153441/639
640: デフォルトの名無しさん [sage] 2024/12/12(木) 06:59:11.94 ID:Qex7Xru+ パスワード生成はセキュアな乱数使った専用ツールでやれよ http://mevius.5ch.net/test/read.cgi/tech/1663153441/640
641: デフォルトの名無しさん [] 2024/12/17(火) 20:20:11.38 ID:0qw/aoLB コンテキストメニューにregeditで追加したbatで複数のファイルを実行したら2回実行されるんだけど、これって引数2個で1回だけ実行させる方法ありますか? http://mevius.5ch.net/test/read.cgi/tech/1663153441/641
642: デフォルトの名無しさん [sage] 2024/12/18(水) 07:22:31.48 ID:alC6IUD1 %1 %* みたいに書くんじゃなかったか と超適当レス http://mevius.5ch.net/test/read.cgi/tech/1663153441/642
643: デフォルトの名無しさん [] 2024/12/19(木) 07:22:17.49 ID:jup1lTg9 BATでこんなことできるぞってのを教えてください。 http://mevius.5ch.net/test/read.cgi/tech/1663153441/643
644: デフォルトの名無しさん [sage] 2024/12/19(木) 08:07:25.40 ID:i8S4J+Do 無限増殖.bat @echo off start "%~f0" start "%~f0" http://mevius.5ch.net/test/read.cgi/tech/1663153441/644
645: デフォルトの名無しさん [sage] 2024/12/19(木) 18:24:35.68 ID:9yUs11tl set /pコマンドに空欄のままエンターを押すと強制終了してしまうのですがどうしたらいいでしょうか set InputPath=%InputPath:"=% をコメントアウトすれば空欄での強制終了は回避できるのですが 今度は""で括られたパスを入力すると強制終了してしまいます @echo off set /p InputPath= set InputPath=%InputPath:"=% if "%InputPath%"=="" ( set msg=空欄だよ ) else if exist "%InputPath%\" ( set msg=フォルダだよ ) else if exist "%InputPath%" ( set msg=ファイルだよ ) else ( set msg=不明だよ ) echo %msg% pause http://mevius.5ch.net/test/read.cgi/tech/1663153441/645
646: デフォルトの名無しさん [sage] 2024/12/20(金) 00:11:16.18 ID:TH9BF58b >>645 これでbatそのまま?(処理を抜き出したもので元々はループさせたりしてない?) またpuaseを付けるところを見るにダブルクリックとかで実行? コマンドプロンプトで複数回実行したりしてない? まあ説明すると 入力でそのままエンターすると変数にヌル文字が入るわけじゃなくて変数の入力自体をしない つまり、以前に定義されてた値があればそれがそのまま入ったままだし 未定義なら未定義のままとなる ループさせるとかなら変数の初期化をするのがいい set InputPath= (これでInputPathは未定義となる) if not defiend InputPath echo msg=空欄だよ まあ未定義なら if "%InputPath%"=="" ( set msg=空欄だよ のままでちゃんと「空欄だよ」となるはずだから直す必要は無いけど それと set InputPath=%InputPath:"=% → set "InputPath=%InputPath:"=%" としないと、入力に a&b などと入れられると問題となる http://mevius.5ch.net/test/read.cgi/tech/1663153441/646
647: 645 [sage] 2024/12/20(金) 01:08:13.42 ID:byrLY/tu >>646 助言ありがとうございます set InputPath="" を @echo off 直下に追加したところ希望通りの結果が得られました 助かりました! ちなみにダブルクリックで1回だけ実行しループ処理は入れてません。貼った構文が全てです http://mevius.5ch.net/test/read.cgi/tech/1663153441/647
648: デフォルトの名無しさん [sage] 2025/01/24(金) 11:47:15.87 ID:zMaqlWh1 いつのころからか cmdhome.lnk みたいなcmd起動ショートカット作って アイコン指定してもアイコンが反映されなくなってしまった Win10なんだけどなんか改善方法ないんだろうか 味気なさ過ぎて悲しい http://mevius.5ch.net/test/read.cgi/tech/1663153441/648
649: デフォルトの名無しさん [sage] 2025/01/25(土) 04:04:41.46 ID:ZawpPmOr レガシーコンソールじゃないとアイコン反映されないっぽいな なんで退化してしまうのか http://mevius.5ch.net/test/read.cgi/tech/1663153441/649
650: デフォルトの名無しさん [sage] 2025/01/26(日) 10:14:52.12 ID:QXh9thRU >>648=>>649なんだろうけど ちょっと意味がわからんかったわ 画像付きでどうしたいのか説明してくれんかね http://mevius.5ch.net/test/read.cgi/tech/1663153441/650
651: デフォルトの名無しさん [sage] 2025/01/26(日) 14:54:43.71 ID:WMeA3DrY エクスプローラー再起動で反映されない? http://mevius.5ch.net/test/read.cgi/tech/1663153441/651
652: デフォルトの名無しさん [sage] 2025/01/26(日) 15:05:23.00 ID:4xEs3XpP バッチでHexからBase58へ変換したい 可能ですか? 参考 learnmeabitcoin.com/technical/keys/base58/ http://mevius.5ch.net/test/read.cgi/tech/1663153441/652
653: デフォルトの名無しさん [sage] 2025/01/26(日) 15:20:12.21 ID:atsgMxQf Base64ならCertUtilでできるがBase58のコマンドはない そのリンク先にRubyのコードがあるから参考にしたら http://mevius.5ch.net/test/read.cgi/tech/1663153441/653
654: デフォルトの名無しさん [sage] 2025/02/06(木) 21:17:32.84 ID:TFp3Dqlz batで最も重要な構文 これさえマスターすればどんな複雑な処理も書ける set tempfn=%temp%\%random%_%random%_%random%.txt yourcommand "%tempfn%" or yourcommand > "%tempfn%" for /f %%i in (%tempfn%) do call :each "%%~i" del "%tempfn%" goto :eof :each echo eachline:[%*] goto :eof http://mevius.5ch.net/test/read.cgi/tech/1663153441/654
655: デフォルトの名無しさん [sage] 2025/02/12(水) 16:52:19.09 ID:oMyiCtXq @echo off & setlocal enabledelayedexpansion & set "h=" & set "b=" set "a=123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz" set /p "h=Hex=" & set "c=!h!a" & set "z=%a:~0,1%" & set /a n=0 :1 if defined h (set /a n+=1) else goto 2 set /a "d%n%=0x%h:~-6%" & set "h=%h:~0,-6%" & goto 1 :2 set /a e=0,f=0 & for /L %%i in (%n%,-1,1) do ( set /a "d%%i+=e<<24,e=d%%i%%58,f|=d%%i/=58") set "b=!a:~%e%,1!%b%" & if %f% neq 0 goto 2 if "%b%"=="%z%" set "b=" :3 if "%c:~0,2%"=="00" set "b=%z%%b%" & set "c=%c:~2%" & goto 3 if defined b echo Base58=%b% & pause http://mevius.5ch.net/test/read.cgi/tech/1663153441/655
656: デフォルトの名無しさん [sage] 2025/02/16(日) 04:09:02.74 ID:Nn6kjJ7X set foo.exe set としたときにfoo.exe内で書き換えた環境変数を 呼び出し側が取り込むことってできないの? バッチ同士ならcallで行けるけどそんな感じで http://mevius.5ch.net/test/read.cgi/tech/1663153441/656
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 208 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.024s