【.cmd】 バッチファイルスクリプト %15 【.bat】 (773レス)
前次1-
抽出解除 レス栞

94: デフォルトの名無しさん [sage] 2022/12/02(金) 21:24:55.56 ID:JHo2A9dA(1) AAS
日時の操作に関してはもう便利すぎてpowershellへ丸投げしたほうがいいな
powershellというか.NETのDateTimeのメソッドではあるが
>>93
93(1): デフォルトの名無しさん [sage] 2022/12/02(金) 07:27:12.50 ID:elckNyGo(1/2) AAS
>>87
set /a d=20221201
set /a f=10000,g=100,h=8869,i=69,j=278803
set /a "n=d-1,n-=!(n%%f-g)*h,c=n/f"
set /a "a=j-!(c%%4)+!(c%%100)-!(c%%400)<<6"
set /a "n-=!(n%%g)*(i+(a>>(n%%f/g)*2&3))"
echo %n%
とか何してるか本当に合ってるのかわからんような事をするよりは
96
(2): デフォルトの名無しさん [sage] 2022/12/04(日) 15:45:51.56 ID:xdG8GXCM(1) AAS
変数1の値を変数2にsetするとエラーになります。
値は文字列で不定ですが、記号文字が原因のようです。
遅延展開ではありません。
うまい方法はないですか。
115
(2): デフォルトの名無しさん [sage] 2022/12/22(木) 03:20:20.56 ID:rMNtcPRb(1/2) AAS
バッチファイル内でキー入力を受けとろうと思って

>SET /P YN_Check="(Y/N):"
>Echo 入力されたのは %YN_Check%

としたのですが、%YN_Check% にちゃんと入力した文字が入らないのですが、何故でしょうか…?
この2行だけのバッチファイルなら、問題なく入力した値が入るのですが、
本来その処理をしたいバッチファイル内に記述すると、とたんにおかしくなります…
Y にしても y になったり、y を入力してるのに N になったり訳が分からない。
127: デフォルトの名無しさん [sage] 2023/01/03(火) 15:15:36.56 ID:cXTWG1PB(1) AAS
>>126
126(1): デフォルトの名無しさん [sage] 2023/01/03(火) 14:21:42.12 ID:axWhet1W(1/2) AAS
IF の中から GOTO で外に飛ぶと、括弧の使い方が間違っている
というエラーになるのですが、どうやって回避するのでしょうか?
コード出してみ
130: デフォルトの名無しさん [sage] 2023/01/03(火) 16:51:21.56 ID:z3dTsyyT(1) AAS
gotoは便利かもだけど、使わないにこしたことはない
257: デフォルトの名無しさん [sage] 2023/04/27(木) 01:12:28.56 ID:RXLaISm2(1) AAS
^^
280: デフォルトの名無しさん [] 2023/05/09(火) 05:59:48.56 ID:uZ4E3DcQ(5/5) AAS
リンクのコピペに失敗したやつはこれ

外部リンク:teratail.com

外部リンク:qiita.com
355: デフォルトの名無しさん [sage] 2023/07/04(火) 17:06:41.56 ID:LIey+Zab(1/5) AAS
作ってみました。行数ギリギリです。
561
(1): デフォルトの名無しさん [age] 2024/08/12(月) 12:32:10.56 ID:om8unfFL(1) AAS
初心者質問ですみません。ffmpegで一括再エンコードしたいと思ってバッチファイルを作ってみたのですがファイルにスペースが含まれるとエラーが出るようで困っています。どのように対処すればよいか、どなたか御教示お願い出来ませんでしょうか?
@echo off
cd /d %~dp0

for %%a in (*.mp4) do (

"C:\ffmpeg\bin\ffmpeg.exe" -i %%a -b:v 500k -c:a copy %%~na_500k.mp4
)
pause
619
(1): デフォルトの名無しさん [sage] 2024/11/11(月) 00:41:06.56 ID:ggA4ksL2(1/3) AAS
"%ss%"を引数につけてると
入力に"を入れられると二週目からエラーとなる
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
615(1): デフォルトの名無しさん [sage] 2024/11/10(日) 22:06:03.40 ID:zZSAaq07(2/3) AAS
forの中の"%ss%"を削除すれば?
ありがとう。たったこれだけだったよ

>>616,618
616(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で文字制限を聞いたら?のような入力方法だったよ
とはいえ、ありがとうございました><
658: デフォルトの名無しさん [sage] 2025/02/16(日) 08:16:27.56 ID:nK83B1eq(1) AAS
プロセス終了後に弄った環境変数を取得?
そんなの簡単にできたらセキュリティーホールになりそう
745: デフォルトの名無しさん [sage] 2025/06/16(月) 21:12:33.56 ID:3rn8pxf/(2/4) AAS
>>744
744(1): デフォルトの名無しさん [] 2025/06/16(月) 20:18:24.83 ID:FL2oCcdJ(2/6) AAS
>>741
改良提案したのにごめん、%1に依存してるからNGかもと気づいた
ファイル名でなくディレクトリ名に & があって、パス全体では空白がない場合たぶんNG
それは無いと思います
最初に引用符を全部削除して、%0と%1の間は空白一個です
最後に両側に引用符を付けています
だから引数は全て引用符に囲まれている
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.208s*