【.cmd】 バッチファイルスクリプト %15 【.bat】 (819レス)
1-

625: 2024/11/13(水)02:26 ID:AkCTz+Wd(1) AAS
BATでこんなすごいことできるぞってのを教えてくださいハゲども
626: 2024/11/13(水)02:26 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 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: 2024/11/14(木)11:50 ID:WvtXCkNi(1) AAS
他の「ふつう」の環境選ぶのがええよ
629
(1): 2024/11/14(木)14:18 ID:q/WsLCXM(1/4) AAS
>>627
半角空白が無くて全角空白があるファイルをドロップするとファイル名はそこで分かれる
過去ログにやり方はあるけど簡単なのは親フォルダ名のどこかに半角空白を入れておく
それ以外で正常にできないといってるのならもう少し現象を説明してもらわないと
俺達はエスパーじゃないんだから
630
(1): 627 2024/11/14(木)15:26 ID:oC8TllJp(2/5) AAS
>>629
すいません
2つのフォルダーと2つのテキストを用意し、この4つ全てを選択してコピーしたら一つしかコピーできなかったりして正常に動作しません
631: 2024/11/14(木)15:48 ID:X91uzdxk(1) AAS
>>584 見ろ
632
(1): 2024/11/14(木)16:15 ID:q/WsLCXM(2/4) AAS
>>630
コピーって何?
一例としてエクスプローラで複数のファイルを選択反転してbatのショートカットにD&Dしたら
選択したファイルのファイル名がクリップボードに入ってるだろ
どこにコピーする操作が加わるんだ?
633: 627 2024/11/14(木)17:07 ID:oC8TllJp(3/5) AAS
>>632
ファイル名のコピーです
634: 2024/11/14(木)17:19 ID:q/WsLCXM(3/4) AAS
ファイル名のコピーしたならもうbatを動かすまでもなくファイル名一覧がクリップボードに入ってるじゃん
そもそもクリップボードに入ってるものを入力するようにはそのbatはできてないじゃんか
635: 627 2024/11/14(木)17:27 ID:oC8TllJp(4/5) AAS
そのファイル名のコピーがうまくいかないのです
636: 2024/11/14(木)17:38 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 ID:oC8TllJp(5/5) AAS
わかりました
失礼しました
638
(1): 2024/12/11(水)20:24 ID:y+gluRXv(1/2) AAS
BATだけでパスワード生成する方法を教えてください。
生成したパスワードをクリップボードにコピーする形でお願いします。
639: 638 2024/12/11(水)22:00 ID:y+gluRXv(2/2) AAS
自己解決しました。
640: 2024/12/12(木)06:59 ID:Qex7Xru+(1) AAS
パスワード生成はセキュアな乱数使った専用ツールでやれよ
641: 2024/12/17(火)20:20 ID:0qw/aoLB(1) AAS
コンテキストメニューにregeditで追加したbatで複数のファイルを実行したら2回実行されるんだけど、これって引数2個で1回だけ実行させる方法ありますか?
642: 2024/12/18(水)07:22 ID:alC6IUD1(1) AAS
%1 %*
みたいに書くんじゃなかったか
と超適当レス
643: 2024/12/19(木)07:22 ID:jup1lTg9(1) AAS
BATでこんなことできるぞってのを教えてください。
644: 2024/12/19(木)08:07 ID:i8S4J+Do(1) AAS
無限増殖.bat

@echo off
start "%~f0"
start "%~f0"
645
(2): 2024/12/19(木)18:24 ID:9yUs11tl(1) AAS
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
646
(1): 2024/12/20(金)00:11 ID:TH9BF58b(1) AAS
>>645
これでbatそのまま?(処理を抜き出したもので元々はループさせたりしてない?)
またpuaseを付けるところを見るにダブルクリックとかで実行?
コマンドプロンプトで複数回実行したりしてない?

まあ説明すると
入力でそのままエンターすると変数にヌル文字が入るわけじゃなくて変数の入力自体をしない
つまり、以前に定義されてた値があればそれがそのまま入ったままだし
未定義なら未定義のままとなる

ループさせるとかなら変数の初期化をするのがいい
set InputPath=
(これでInputPathは未定義となる)
if not defiend InputPath echo msg=空欄だよ
まあ未定義なら
if "%InputPath%"=="" (
set msg=空欄だよ
のままでちゃんと「空欄だよ」となるはずだから直す必要は無いけど

それと
set InputPath=%InputPath:"=% → set "InputPath=%InputPath:"=%"
としないと、入力に a&b などと入れられると問題となる
647: 645 2024/12/20(金)01:08 ID:byrLY/tu(1) AAS
>>646
助言ありがとうございます

set InputPath="" を @echo off 直下に追加したところ希望通りの結果が得られました
助かりました!

ちなみにダブルクリックで1回だけ実行しループ処理は入れてません。貼った構文が全てです
648
(1): 01/24(金)11:47 ID:zMaqlWh1(1) AAS
いつのころからか
cmdhome.lnk
みたいなcmd起動ショートカット作って
アイコン指定してもアイコンが反映されなくなってしまった
Win10なんだけどなんか改善方法ないんだろうか
味気なさ過ぎて悲しい
649
(1): 01/25(土)04:04 ID:ZawpPmOr(1) AAS
レガシーコンソールじゃないとアイコン反映されないっぽいな
なんで退化してしまうのか
650: 01/26(日)10:14 ID:QXh9thRU(1) AAS
>>648=>>649なんだろうけど
ちょっと意味がわからんかったわ
画像付きでどうしたいのか説明してくれんかね
651: 01/26(日)14:54 ID:WMeA3DrY(1) AAS
エクスプローラー再起動で反映されない?
652
(1): 01/26(日)15:05 ID:4xEs3XpP(1) AAS
バッチでHexからBase58へ変換したい
可能ですか?

参考
learnmeabitcoin.com/technical/keys/base58/
653: 01/26(日)15:20 ID:atsgMxQf(1) AAS
Base64ならCertUtilでできるがBase58のコマンドはない
そのリンク先にRubyのコードがあるから参考にしたら
654: 02/06(木)21:17 ID:TFp3Dqlz(1) AAS
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
1-
あと 165 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.010s