【.cmd】 バッチファイルスクリプト %15 【.bat】 (819レス)
上下前次1-新
619(1): デフォルトの名無しさん [sage] 2024/11/11(月) 00:41:06.56 ID:ggA4ksL2(1/3) AAS
"%ss%"を引数につけてると
入力に"を入れられると二週目からエラーとなる
620(1): デフォルトの名無しさん [sage] 2024/11/11(月) 00:55:30.51 ID:ggA4ksL2(2/3) AAS
入力データから"を削除するようにしたほうがいい
ファイル名にも"は使えないから必要ないだろ
それと基本文字列を扱う場合は""で括ること
echo %ss%→echo "%ss%"
じゃないと、&|などでエラーになるし、^も消えるとかいろいろ起きる
(a^b.txtは正常なファイル名)
621(1): デフォルトの名無しさん [sage] 2024/11/11(月) 01:34:01.29 ID:ggA4ksL2(3/3) AAS
"%ss%"でエラーになってるのはbatでの構文解釈時なのでjscriptでの対処云々以前の問題
622(1): デフォルトの名無しさん [] 2024/11/11(月) 02:13:27.56 ID:BY3zyfqu(1) AAS
みなさんありがとう。
理想なのができたので、まず、
?をfor /f "tokens=*" %%i in ('cscript //nologo /e:jscript "%~f0" ') do set ss= %%i
>>615ありがとう。たったこれだけだったよ
>>616,618616(1): デフォルトの名無しさん [sage] 2024/11/10(日) 22:08:14.92 ID:cLh8//6O(1/2) AAS
うーんよく判らんけど
もう入力データはjscipt内でWScript.StdIn.ReadLine();からで拾ってきた方が早くね?とか
バッチはjsciptの呼び出し部分だけ残して全部jscriptでやった方が楽じゃね?とは思った
618(1): デフォルトの名無しさん [sage] 2024/11/10(日) 23:54:47.86 ID:cLh8//6O(2/2) AAS
上で言った楽なやつね。叩き台としてどうかな
@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);
文字制限で入力ができなかった。
でもそういうやり方もあるんだと学べたのでありがとう
>>619,620,621
このbatの後に渡されるexeの処理に””で括っておかないとexeのほうでエラーになる
ちゃんとそこを伝えれてなかったね、ごめん
回答してくれてありがとう
これWScript.StdIn.ReadLine();をchat gptで文字制限を聞いたら?のような入力方法だったよ
とはいえ、ありがとうございました><
623(1): デフォルトの名無しさん [] 2024/11/11(月) 03:53:20.62 ID:vS/DyEQP(1) AAS
batというプログラミング初めてです。
初心者に良いサイト教えてください。
Windows 10です。
624: デフォルトの名無しさん [sage] 2024/11/11(月) 04:28:35.50 ID:UKR+WOTm(1) AAS
>>623
www.google.co.jp
625: デフォルトの名無しさん [] 2024/11/13(水) 02:26:15.40 ID:AkCTz+Wd(1) AAS
BATでこんなすごいことできるぞってのを教えてくださいハゲども
626: デフォルトの名無しさん [sage] 2024/11/13(水) 02:26:54.33 ID:HWwn2oWP(1) AAS
>>622
すっかり忘れてたけど
"tokens=*"じゃ先頭が半角スペースやタブだと消えるし、セミコロンだとスキップされるという問題があった
バッチはクセがありすぎる
eolのデフォルトが;で、しかも"eol="だと今度は"が指定されたことになるとかウソーって言いたい
for /f delims^=^ eol^= %%i in ('cscript //nologo /e:jscript "%~f0"') do set ss=%%i
627(5): デフォルトの名無しさん [] 2024/11/14(木) 11:47:50.65 ID:oC8TllJp(1/5) AAS
@echo off
set T=%tmp%\tmp.txt
type nul>%T%
for %%f in (%*) do (
>>%tmp%\tmp.txt echo %%~nxf
)
type %T% | clip
これだと正常に取得できません
正常にファイル名を取得できるようにするにはどう書けばいいでしょうか?
628: デフォルトの名無しさん [sage] 2024/11/14(木) 11:50:39.07 ID:WvtXCkNi(1) AAS
他の「ふつう」の環境選ぶのがええよ
629(1): デフォルトの名無しさん [sage] 2024/11/14(木) 14:18:34.94 ID:q/WsLCXM(1/4) AAS
>>627
半角空白が無くて全角空白があるファイルをドロップするとファイル名はそこで分かれる
過去ログにやり方はあるけど簡単なのは親フォルダ名のどこかに半角空白を入れておく
それ以外で正常にできないといってるのならもう少し現象を説明してもらわないと
俺達はエスパーじゃないんだから
630(1): 627 [] 2024/11/14(木) 15:26:47.13 ID:oC8TllJp(2/5) AAS
>>629
すいません
2つのフォルダーと2つのテキストを用意し、この4つ全てを選択してコピーしたら一つしかコピーできなかったりして正常に動作しません
631: デフォルトの名無しさん [sage] 2024/11/14(木) 15:48:05.37 ID:X91uzdxk(1) AAS
>>584584(1): デフォルトの名無しさん [sage] 2024/11/07(木) 14:02:09.09 ID:DJJuXIJX(1) AAS
エクスプローラーで「パスのコピー」あるの知ってる?
windows11 なら選択後に shift+ctrl+c
バッチとかいらんだろ
見ろ
632(1): デフォルトの名無しさん [sage] 2024/11/14(木) 16:15:29.07 ID:q/WsLCXM(2/4) AAS
>>630
コピーって何?
一例としてエクスプローラで複数のファイルを選択反転してbatのショートカットにD&Dしたら
選択したファイルのファイル名がクリップボードに入ってるだろ
どこにコピーする操作が加わるんだ?
633: 627 [] 2024/11/14(木) 17:07:59.07 ID:oC8TllJp(3/5) AAS
>>632
ファイル名のコピーです
634: デフォルトの名無しさん [sage] 2024/11/14(木) 17:19:32.22 ID:q/WsLCXM(3/4) AAS
ファイル名のコピーしたならもうbatを動かすまでもなくファイル名一覧がクリップボードに入ってるじゃん
そもそもクリップボードに入ってるものを入力するようにはそのbatはできてないじゃんか
635: 627 [] 2024/11/14(木) 17:27:06.24 ID:oC8TllJp(4/5) AAS
そのファイル名のコピーがうまくいかないのです
636: デフォルトの名無しさん [sage] 2024/11/14(木) 17:38:15.36 ID:q/WsLCXM(4/4) AAS
何をしたいのかちゃんと説明できないのなら付きあえないよ
そのbatは、引数に列記されたファイル(パス)名を順次入力してファイル名のみにして列記した一覧をクリップボードに入れるということをやってる
【オペレーション例】
コマンドプロンプトを立ち上げて
hoge.bat "c:\aa.txt" "c:\bb.txt" "c:\cc.txt"
と入力したら
aa.txt
bb.txt
cc.txt
とクリップボードに入る
637: 627 [] 2024/11/14(木) 17:41:20.12 ID:oC8TllJp(5/5) AAS
わかりました
失礼しました
638(1): デフォルトの名無しさん [] 2024/12/11(水) 20:24:09.34 ID:y+gluRXv(1/2) AAS
BATだけでパスワード生成する方法を教えてください。
生成したパスワードをクリップボードにコピーする形でお願いします。
639: 638 [] 2024/12/11(水) 22:00:19.62 ID:y+gluRXv(2/2) AAS
自己解決しました。
640: デフォルトの名無しさん [sage] 2024/12/12(木) 06:59:11.94 ID:Qex7Xru+(1) AAS
パスワード生成はセキュアな乱数使った専用ツールでやれよ
641: デフォルトの名無しさん [] 2024/12/17(火) 20:20:11.38 ID:0qw/aoLB(1) AAS
コンテキストメニューにregeditで追加したbatで複数のファイルを実行したら2回実行されるんだけど、これって引数2個で1回だけ実行させる方法ありますか?
642: デフォルトの名無しさん [sage] 2024/12/18(水) 07:22:31.48 ID:alC6IUD1(1) AAS
%1 %*
みたいに書くんじゃなかったか
と超適当レス
643: デフォルトの名無しさん [] 2024/12/19(木) 07:22:17.49 ID:jup1lTg9(1) AAS
BATでこんなことできるぞってのを教えてください。
上下前次1-新書関写板覧索設栞歴
あと 176 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.012s