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

554: 2024/06/19(水)14:55 ID:baOC8PLn(1) AAS
Ruby で作ってみた。
Rubyでは半角空白はエラーになるけど、全角空白は正常に動く

デスクトップにショートカットを作って、
それに対して、ファイルをdrag & drop する

ショートカットのリンク先は、
C:\Windows\System32\cmd@.exe /k "ruby C:/Users/Owner/Documents/script.rb"
(@は取り除いて下さい)

require 'fileutils'

Sep = '-' * 40 + "\n" # separator

# ファイル作成日時の古い順から処理する。
# ただし、File.(stat.)birthtime は、Linux では使えない
ARGV.select { |full_path| File.file?( full_path ) } # ファイルのみ
.sort_by{ |full_path| File.birthtime( full_path ) }
.each do |full_path|
puts Sep + full_path
p birthtime = File.birthtime( full_path )

# ここに処理を書く
end

sleep # 出力したコマンドプロンプト画面を閉じないようにする
555: 2024/06/19(水)21:41 ID:AL0iJITw(1) AAS
バッチファイルでちまちま文字列処理するのは
C言語でちまちま文字列処理するくらい不毛だからやめとけ
556
(3): 2024/06/20(木)06:56 ID:oAthcLJ7(1) AAS
私が普段使っているドラッグアンドドロップ用バッチのサンプルです

@echo off & set a="%cmdcmdline:"=%"& set "arg="
for /f "tokens=3* delims=:" %%i in (%a%) do (set a=%%i& set b=%%j)
set "a=%a:~-1%" & set b="%b::=" "%"
for %%i in (%b%) do set b=%%i& call :x
goto y
:x
if defined arg set arg=%arg:~0,-3%"
set arg=%arg% "%a%:%b:~1%& exit /b
:y
echo コマンド %arg%
pause & exit
557: 2024/06/20(木)14:12 ID:6cw0yeSx(1) AAS
PowerShellて別の文字でエラーになるとか聞いたけど本当?
558
(1): 2024/07/16(火)20:58 ID:Ho7KhNQA(1) AAS
net session /delete の後の2回のY/N選択をコマンドで自動入力したいんだけど、どうやればいいの?
559: 2024/07/16(火)21:44 ID:PFxavJIe(1) AAS
>>558
応答ファイル(y+CR/LF, n+CR/LF)を作ってそれを入力とするのが常套手段だが
●Y/Nが1回の場合の例
rem ***準備
mkdir 111 2>nul
echo.>111\1.txt
rem ***応答ファイル作成
echo n>n.txt
echo y>y.txt
del Z:\111\*.*<n.txt >nul 2>&1

2回とのことなので、
echo n>n_n.txt
echo n>>n_n.txt
とするといけるかも(実行してないので結果不明)
560: 2024/07/17(水)06:53 ID:gLjbT8+P(1) AAS
ahk
561
(1): [age] 2024/08/12(月)12:32 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
562: 2024/08/12(月)14:37 ID:NAcZpcdu(1) AAS
>>561
引数として渡されるファイル名にスペースがある場合?
それなら引数を”で囲めば行けるんじゃね?
563: 2024/08/12(月)19:13 ID:N4nkPpmi(1) AAS
有難うございます。引数を""で囲んだら上手くいきました。
564: 2024/10/03(木)08:38 ID:hcouLIA5(1/2) AAS
別のスレでも質問させていただいているのですが、こちらの方が適切かと思い投稿させていただきます。

以下をbatファイルで動かそうとしてもうまく動かないのですが、どうしたら良いでしょうか。
batファイルをダブルクリックして、PowerShellを実行しています。
PowerShellのスクリプト部分は、PowerShellで動くことを確認済です。
ランダムパスワードを生成する感じです。

外部リンク:chatgpt.com
565: 2024/10/03(木)08:39 ID:hcouLIA5(2/2) AAS
リンクはこちらです
外部リンク:chatgpt.com
566: 2024/10/03(木)10:24 ID:EmzEDUtK(1) AAS
適切だと思ったらマルチポストも辞さない
567: 2024/10/04(金)07:40 ID:BveI+02d(1) AAS
以下を消したら動くようになりました。
解決です。

Param(
[int]$Length = 16,
[switch]$IncludeUppercase,
[switch]$IncludeLowercase,
[switch]$IncludeNumbers,
[switch]$IncludeSymbols
)
568: 2024/10/12(土)02:43 ID:fuP8Oeol(1) AAS
iris-microという便利なソフトつかって 画面明るさ色温度かえてます
バッチファイルが2種類あって この設定をきりかえつかっています
ふたつのバッチファイルを 交互に繰り返すようなスクリプト作れますか
プロセスがのこったりしてるようでもないので難しいでしょうか?
569: 2024/10/12(土)16:51 ID:4VpnKVlz(1) AAS
バッチを順番に呼び出して先頭にgotoすれば交互になるような気がします
570: 2024/10/12(土)17:04 ID:qxhXc26A(1/2) AAS
同じbatで起動するたびにサイクリックに実行する内容を切り替えるって意味じゃないかな
何か外部にフラグみたいなもの(又は実行用にbatをコピーしてそれを呼び出す)を用意するといいんじゃないかな
同時起動の排他制御とかは個人使用ならまあ不要だろう
571: 2024/10/12(土)17:39 ID:Iy6RGAFA(1/2) AAS
状態を持たせたいならバッチの名前を変えるという荒業もできるね
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"
に変更してもダメでした
1-
あと 236 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.023s