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

572: 2024/10/12(土)18:07 ID:qxhXc26A(2/2) AAS
自分自身の名前は変えられないので別ファイルを用意
そもそもbat名を変えたら起動の度に別bat名で起動することになり元々の2つのbatのある状態と変わらんじゃん
573: 2024/10/12(土)18:14 ID:Iy6RGAFA(2/2) AAS
リネームは昔からあるハックだけどな
頭悪そう
574: 2024/10/12(土)19:31 ID:d82xRt2j(1) AAS
echo.>stat_on
if exist stat_on
とかでチェック用ファイルで分岐するのが手っ取り早い

より汎用的にやるなら
inifile.exeみたいの作るか拾うかして状態を読み書きする
575
(1): 2024/11/06(水)18:43 ID:KAHjZpf+(1) AAS
winPCで
エクスプローラから
複数ファイルを
バッチファイルにドロップして
拡張子付きファイル名のみ(パスなし)を
1行1ファイル名で
list.txtに書き出したい
どの様に?
576: 2024/11/06(水)19:42 ID:0Z0sjFnd(1) AAS
てすと.com
577
(2): 2024/11/07(木)07:18 ID:diE3Ipx6(1) AAS
>>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
578: 2024/11/07(木)10:34 ID:sTPvG4+T(1/2) AAS
初めからコマンドプロンプトでやればいいのに
579: 2024/11/07(木)10:35 ID:sTPvG4+T(2/2) AAS
まずは特定のフォルダにファイルを集めるという発想がないんだろうな
580
(1): 2024/11/07(木)11:01 ID:5OQwBO7R(1/2) AAS
batファイルで=を含む置換えの時の方法教えてください。
入力は Hello World 12=34

@echo off
set /p mystringA=あいさつ:
set mystringB=%mystringA:12=34=4567%
echo %mystringB%

結果をこのようにしたい
Hello World 4567
581
(4): 2024/11/07(木)12:14 ID:9xnRXsv4(1) AAS
>>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);
582: 2024/11/07(木)12:33 ID:5OQwBO7R(2/2) AAS
>>581
サイトによって特殊文字は^だったり"を使ったりで試して出来なかった
代案をわざわざありがとうございます^^
583
(1): 2024/11/07(木)13:07 ID:sK42d9tR(1/2) AAS
>>577
神様ありがとう
なんでかわからないけど動きました

list. txtを%USERPROFILE%\Desktopに作成するにはどのようにすれば?
単純に
"%USERPROFILE\Desktop\list.txt"
に変更してもダメでした
584
(1): 2024/11/07(木)14:02 ID:DJJuXIJX(1) AAS
エクスプローラーで「パスのコピー」あるの知ってる?
windows11 なら選択後に shift+ctrl+c
バッチとかいらんだろ
585: 2024/11/07(木)16:57 ID:sK42d9tR(2/2) AAS
>>577
>583
今やったらできました
お騒がせしました

もしよろしければ
解説お願いします
586
(1): 2024/11/08(金)02:14 ID:NHkTpL6A(1/5) AAS
del /q "C:\Users\%username%\Desktop\新しいフォルダー"

これで新しいフォルダー内が消えないのですが?
587: 2024/11/08(金)03:03 ID:NHkTpL6A(2/5) AAS
日本語のファルダだとダメなんですかね?
588: 2024/11/08(金)03:07 ID:8ciHN7a8(1) AAS
文字コードが違うんじゃないですかね
589: 2024/11/08(金)03:20 ID:NHkTpL6A(3/5) AAS
なるほど理解しました
590: 2024/11/08(金)03:24 ID:NHkTpL6A(4/5) AAS
rdコマンドで親フォルダを削除しないようにするにはどう書けば良いのでしょうか?
591: 2024/11/08(金)03:36 ID:NHkTpL6A(5/5) AAS
rdコマンドで無理なら対象のフォルダ以下にあるファイルやフォルダを全て削除するものでもかまいません。
592: 2024/11/08(金)10:30 ID:n9fsiKUu(1) AAS
カレント移動すれば?
593: 2024/11/08(金)11:10 ID:PSMBlcAH(1) AAS
フォルダーごと削除してから新規作成したほうが簡単じゃね
594: 2024/11/08(金)11:27 ID:IbrHrevx(1) AAS
俺の環境だと>>586で消えるけど、/q付けないでやったらファイル削除確認メッセージが出てるか?
出てないなら中身のファイルの属性が隠しファイルになってるとか
595: 2024/11/08(金)23:02 ID:gP+dh+BC(1) AAS
del /q "新しいフォルダー\*"
for /d %%i in ("新しいフォルダー\*") do rd /s /q "%%~i"
596: 2024/11/09(土)11:03 ID:bVsLqwPh(1) AAS
cd "新しいフォルダー" && 2> nul rd /s /q .
597: 2024/11/09(土)11:39 ID:L7dYAlvM(1) AAS
>>581
またつまづきました><
入力 12&encoding=se34 56=78

これで&encoding=seを削除したくて
set "s=%s:^&=%"

で&を通したんですが
'encoding'は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチファイルとして認識されません。

となって出来ないです
set "s=%s:^encoding=%"
data = data.replace(/&encoding=se/g, "");
のように加えてもダメでした
どうすればいいですか?
598: 2024/11/09(土)13:08 ID:q8k7iVH6(1) AAS
宿題は自分で考えよう
599: 2024/11/09(土)13:14 ID:L+GgUCLJ(1/3) AAS
バッチでjscriptに渡す前に&が解釈されてるのかな?知らんけど
できないです、どうすればいいですかではなく
どこでエラーになってるか突き止めるのが先なのと
文字列処理したいなら違う言語例えばjscriptを覚えた方がよいかと
600: 2024/11/09(土)13:21 ID:L+GgUCLJ(2/3) AAS
jscriptは>>581のようにOS標準で入ってる古いjavascript
最近の構文は一部使えないがバッチよりも動作が高速で正規表現など文字列処理にも適している
他にpowershellもある
601: 2024/11/09(土)14:09 ID:A663IrvX(1/5) AAS
&はbatでの特殊記号であり、コマンドの区切りの意味がある
set a=aaaa&set b=bbb&set c=ccc
とか複数の命令を1行で書ける
他に&&,||もある
1-
あと 218 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.011s