【.cmd】 バッチファイルスクリプト %15 【.bat】 (819レス)
【.cmd】 バッチファイルスクリプト %15 【.bat】 http://mevius.5ch.net/test/read.cgi/tech/1663153441/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
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
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 174 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.019s